diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index ce38d0f17f5..00000000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -.github -examples \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index e0456a226c2..00000000000 --- a/.editorconfig +++ /dev/null @@ -1,292 +0,0 @@ -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = false -max_line_length = 120 -tab_width = 4 -ij_continuation_indent_size = 4 -ij_formatter_off_tag = @formatter:off -ij_formatter_on_tag = @formatter:on -ij_formatter_tags_enabled = false -ij_smart_tabs = false -ij_visual_guides = none -ij_wrap_on_typing = false - -[{*.json,composer.lock}] -indent_size = 4 -indent_style = space -ij_json_keep_blank_lines_in_code = 0 -ij_json_keep_indents_on_empty_lines = false -ij_json_keep_line_breaks = true -ij_json_space_after_colon = true -ij_json_space_after_comma = true -ij_json_space_before_colon = true -ij_json_space_before_comma = false -ij_json_spaces_within_braces = false -ij_json_spaces_within_brackets = false -ij_json_wrap_long_lines = false - -[{*.yaml,*.yml}] -indent_size = 2 -indent_style = space -ij_yaml_align_values_properties = do_not_align -ij_yaml_autoinsert_sequence_marker = true -ij_yaml_block_mapping_on_new_line = false -ij_yaml_indent_sequence_value = true -ij_yaml_keep_indents_on_empty_lines = false -ij_yaml_keep_line_breaks = true -ij_yaml_sequence_on_new_line = false -ij_yaml_space_before_colon = false -ij_yaml_spaces_within_braces = true -ij_yaml_spaces_within_brackets = true - -[{*.php}] -indent_size = 4 -indent_style = space -ij_continuation_indent_size = 4 -ij_php_align_assignments = false -ij_php_align_class_constants = false -ij_php_align_group_field_declarations = false -ij_php_align_inline_comments = false -ij_php_align_key_value_pairs = false -ij_php_align_match_arm_bodies = false -ij_php_align_multiline_array_initializer_expression = false -ij_php_align_multiline_binary_operation = false -ij_php_align_multiline_chained_methods = false -ij_php_align_multiline_extends_list = true -ij_php_align_multiline_for = true -ij_php_align_multiline_parameters = false -ij_php_align_multiline_parameters_in_calls = false -ij_php_align_multiline_ternary_operation = false -ij_php_align_named_arguments = false -ij_php_align_phpdoc_comments = false -ij_php_align_phpdoc_param_names = false -ij_php_anonymous_brace_style = end_of_line -ij_php_api_weight = 28 -ij_php_array_initializer_new_line_after_left_brace = true -ij_php_array_initializer_right_brace_on_new_line = true -ij_php_array_initializer_wrap = on_every_item -ij_php_assignment_wrap = off -ij_php_attributes_wrap = off -ij_php_author_weight = 28 -ij_php_binary_operation_sign_on_next_line = false -ij_php_binary_operation_wrap = off -ij_php_blank_lines_after_class_header = 1 -ij_php_blank_lines_after_function = 1 -ij_php_blank_lines_after_imports = 1 -ij_php_blank_lines_after_opening_tag = 1 -ij_php_blank_lines_after_package = 1 -ij_php_blank_lines_around_class = 1 -ij_php_blank_lines_around_constants = 0 -ij_php_blank_lines_around_field = 1 -ij_php_blank_lines_around_method = 1 -ij_php_blank_lines_before_class_end = 0 -ij_php_blank_lines_before_imports = 1 -ij_php_blank_lines_before_method_body = 0 -ij_php_blank_lines_before_package = 1 -ij_php_blank_lines_before_return_statement = 0 -ij_php_blank_lines_between_imports = 1 -ij_php_block_brace_style = end_of_line -ij_php_call_parameters_new_line_after_left_paren = true -ij_php_call_parameters_right_paren_on_new_line = true -ij_php_call_parameters_wrap = on_every_item -ij_php_catch_on_new_line = false -ij_php_category_weight = 28 -ij_php_class_brace_style = next_line -ij_php_comma_after_last_array_element = true -ij_php_concat_spaces = true -ij_php_copyright_weight = 28 -ij_php_deprecated_weight = 28 -ij_php_do_while_brace_force = always -ij_php_else_if_style = combine -ij_php_else_on_new_line = false -ij_php_example_weight = 28 -ij_php_extends_keyword_wrap = off -ij_php_extends_list_wrap = on_every_item -ij_php_fields_default_visibility = protected -ij_php_filesource_weight = 28 -ij_php_finally_on_new_line = false -ij_php_for_brace_force = always -ij_php_for_statement_new_line_after_left_paren = true -ij_php_for_statement_right_paren_on_new_line = true -ij_php_for_statement_wrap = off -ij_php_force_short_declaration_array_style = true -ij_php_getters_setters_naming_style = camel_case -ij_php_getters_setters_order_style = getters_first -ij_php_global_weight = 28 -ij_php_group_use_wrap = on_every_item -ij_php_if_brace_force = always -ij_php_if_lparen_on_next_line = false -ij_php_if_rparen_on_next_line = false -ij_php_ignore_weight = 28 -ij_php_import_sorting = alphabetic -ij_php_indent_break_from_case = true -ij_php_indent_case_from_switch = true -ij_php_indent_code_in_php_tags = false -ij_php_internal_weight = 28 -ij_php_keep_blank_lines_after_lbrace = 0 -ij_php_keep_blank_lines_before_right_brace = 0 -ij_php_keep_blank_lines_in_code = 1 -ij_php_keep_blank_lines_in_declarations = 1 -ij_php_keep_control_statement_in_one_line = true -ij_php_keep_first_column_comment = true -ij_php_keep_indents_on_empty_lines = false -ij_php_keep_line_breaks = true -ij_php_keep_rparen_and_lbrace_on_one_line = true -ij_php_keep_simple_classes_in_one_line = false -ij_php_keep_simple_methods_in_one_line = false -ij_php_lambda_brace_style = end_of_line -ij_php_license_weight = 28 -ij_php_line_comment_add_space = false -ij_php_line_comment_at_first_column = true -ij_php_link_weight = 28 -ij_php_lower_case_boolean_const = true -ij_php_lower_case_keywords = true -ij_php_lower_case_null_const = true -ij_php_method_brace_style = next_line -ij_php_method_call_chain_wrap = off -ij_php_method_parameters_new_line_after_left_paren = true -ij_php_method_parameters_right_paren_on_new_line = true -ij_php_method_parameters_wrap = on_every_item -ij_php_method_weight = 28 -ij_php_modifier_list_wrap = false -ij_php_multiline_chained_calls_semicolon_on_new_line = false -ij_php_namespace_brace_style = 1 -ij_php_new_line_after_php_opening_tag = true -ij_php_null_type_position = in_the_end -ij_php_package_weight = 28 -ij_php_param_weight = 0 -ij_php_parameters_attributes_wrap = off -ij_php_parentheses_expression_new_line_after_left_paren = false -ij_php_parentheses_expression_right_paren_on_new_line = false -ij_php_phpdoc_blank_line_before_tags = true -ij_php_phpdoc_blank_lines_around_parameters = false -ij_php_phpdoc_keep_blank_lines = true -ij_php_phpdoc_param_spaces_between_name_and_description = 1 -ij_php_phpdoc_param_spaces_between_tag_and_type = 1 -ij_php_phpdoc_param_spaces_between_type_and_name = 1 -ij_php_phpdoc_use_fqcn = false -ij_php_phpdoc_wrap_long_lines = false -ij_php_place_assignment_sign_on_next_line = false -ij_php_place_parens_for_constructor = 0 -ij_php_property_read_weight = 28 -ij_php_property_weight = 28 -ij_php_property_write_weight = 28 -ij_php_return_type_on_new_line = false -ij_php_return_weight = 1 -ij_php_see_weight = 28 -ij_php_since_weight = 28 -ij_php_sort_phpdoc_elements = true -ij_php_space_after_colon = true -ij_php_space_after_colon_in_enum_backed_type = true -ij_php_space_after_colon_in_named_argument = true -ij_php_space_after_colon_in_return_type = true -ij_php_space_after_comma = true -ij_php_space_after_for_semicolon = true -ij_php_space_after_quest = true -ij_php_space_after_type_cast = true -ij_php_space_after_unary_not = false -ij_php_space_before_array_initializer_left_brace = false -ij_php_space_before_catch_keyword = true -ij_php_space_before_catch_left_brace = true -ij_php_space_before_catch_parentheses = true -ij_php_space_before_class_left_brace = true -ij_php_space_before_closure_left_parenthesis = true -ij_php_space_before_colon = true -ij_php_space_before_colon_in_enum_backed_type = false -ij_php_space_before_colon_in_named_argument = false -ij_php_space_before_colon_in_return_type = false -ij_php_space_before_comma = false -ij_php_space_before_do_left_brace = true -ij_php_space_before_else_keyword = true -ij_php_space_before_else_left_brace = true -ij_php_space_before_finally_keyword = true -ij_php_space_before_finally_left_brace = true -ij_php_space_before_for_left_brace = true -ij_php_space_before_for_parentheses = true -ij_php_space_before_for_semicolon = false -ij_php_space_before_if_left_brace = true -ij_php_space_before_if_parentheses = true -ij_php_space_before_method_call_parentheses = false -ij_php_space_before_method_left_brace = true -ij_php_space_before_method_parentheses = false -ij_php_space_before_quest = true -ij_php_space_before_short_closure_left_parenthesis = false -ij_php_space_before_switch_left_brace = true -ij_php_space_before_switch_parentheses = true -ij_php_space_before_try_left_brace = true -ij_php_space_before_unary_not = false -ij_php_space_before_while_keyword = true -ij_php_space_before_while_left_brace = true -ij_php_space_before_while_parentheses = true -ij_php_space_between_ternary_quest_and_colon = false -ij_php_spaces_around_additive_operators = true -ij_php_spaces_around_arrow = false -ij_php_spaces_around_assignment_in_declare = true -ij_php_spaces_around_assignment_operators = true -ij_php_spaces_around_bitwise_operators = true -ij_php_spaces_around_equality_operators = true -ij_php_spaces_around_logical_operators = true -ij_php_spaces_around_multiplicative_operators = true -ij_php_spaces_around_null_coalesce_operator = true -ij_php_spaces_around_pipe_in_union_type = false -ij_php_spaces_around_relational_operators = true -ij_php_spaces_around_shift_operators = true -ij_php_spaces_around_unary_operator = false -ij_php_spaces_around_var_within_brackets = false -ij_php_spaces_within_array_initializer_braces = false -ij_php_spaces_within_brackets = false -ij_php_spaces_within_catch_parentheses = false -ij_php_spaces_within_for_parentheses = false -ij_php_spaces_within_if_parentheses = false -ij_php_spaces_within_method_call_parentheses = false -ij_php_spaces_within_method_parentheses = false -ij_php_spaces_within_parentheses = false -ij_php_spaces_within_short_echo_tags = false -ij_php_spaces_within_switch_parentheses = false -ij_php_spaces_within_while_parentheses = false -ij_php_special_else_if_treatment = false -ij_php_subpackage_weight = 28 -ij_php_ternary_operation_signs_on_next_line = false -ij_php_ternary_operation_wrap = off -ij_php_throws_weight = 2 -ij_php_todo_weight = 28 -ij_php_unknown_tag_weight = 28 -ij_php_upper_case_boolean_const = false -ij_php_upper_case_null_const = false -ij_php_uses_weight = 28 -ij_php_var_weight = 28 -ij_php_variable_naming_style = camel_case -ij_php_version_weight = 28 -ij_php_while_brace_force = always -ij_php_while_on_new_line = false - -[{*.sh}] -indent_size = 4 -tab_width = 4 -ij_shell_binary_ops_start_line = false -ij_shell_keep_column_alignment_padding = false -ij_shell_minify_program = false -ij_shell_redirect_followed_by_space = false -ij_shell_switch_cases_indented = false -ij_shell_use_unix_line_separator = true - -[{*.xml}] -indent_size = 4 -indent_style = space -ij_xml_align_attributes = true -ij_xml_align_text = false -ij_xml_attribute_wrap = on_every_item -ij_xml_block_comment_at_first_column = true -ij_xml_keep_blank_lines = 1 -ij_xml_keep_indents_on_empty_lines = false -ij_xml_keep_line_breaks = true -ij_xml_keep_line_breaks_in_text = true -ij_xml_keep_whitespaces = true -ij_xml_keep_whitespaces_around_cdata = preserve -ij_xml_keep_whitespaces_inside_cdata = true -ij_xml_line_comment_at_first_column = true -ij_xml_space_after_tag_name = false -ij_xml_space_around_equals_in_attribute = false -ij_xml_space_inside_empty_tag = true -ij_xml_text_wrap = normal diff --git a/.env b/.env deleted file mode 100644 index b5d1459d6da..00000000000 --- a/.env +++ /dev/null @@ -1,5 +0,0 @@ -COMPOSE_DOCKER_CLI_BUILD=1 -DOCKER_BUILDKIT=1 -COMPOSE_PROJECT_NAME=app -COMPOSE_PATH_SEPARATOR=: -COMPOSE_FILE=build/docker-compose.yaml:test/docker-compose.yaml diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index c1bf5c2804f..00000000000 --- a/.gitattributes +++ /dev/null @@ -1,28 +0,0 @@ -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT - -/vendor export-ignore -/build export-ignore -/test export-ignore -/examples export-ignore -/.github export-ignore -/.editorconfig export-ignore -/.env export-ignore -/.gitattributes export-ignore -/.gitignore export-ignore -/composer.lock export-ignore - -CODE_OF_CONDUCT export-ignore -DCO export-ignore -AUTHORS export-ignore -CONTRIBUTING export-ignore -AUTHORS export-ignore -CITATION export-ignore - -* text=false -*.php text eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 6dc9bd5cfda..00000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,15 +0,0 @@ -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT - -# @see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-syntax - -# These owners will be the default owners for everything in -# the repo. Unless a later match takes precedence, -# @global-owner1 and @global-owner2 will be requested for -# review when someone opens a pull request. -* @sshilko \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 4ff5d231cdb..00000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT - -# @see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: sshilko -custom: https://paypal.me/sergeishilko diff --git a/.github/SECURITY b/.github/SECURITY deleted file mode 100644 index 898f002cd3e..00000000000 --- a/.github/SECURITY +++ /dev/null @@ -1,13 +0,0 @@ -# Security Policy - -This is security policy - -## Reporting a Vulnerability - -If you find something suspicious and want to report it, we'd really appreciate! - -### Ways to report - -* Send us an email message -* If you can't send an email, either open an issue or pull request on GitHub - diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml deleted file mode 100644 index 448be4f7607..00000000000 --- a/.github/workflows/github-pages.yml +++ /dev/null @@ -1,59 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: Github Pages - -on: - schedule: - # @see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule - # * is a special character in YAML so you have to quote this string - # ┌───────────── minute (0 - 59) - # │ ┌───────────── hour (0 - 23) - # │ │ ┌───────────── day of the month (1 - 31) - # │ │ │ ┌───────────── month (1 - 12) - # │ │ │ │ ┌───────────── day of the week (0 - 6) - # │ │ │ │ │ - # │ │ │ │ │ - # │ │ │ │ │ - # * * * * * - - cron: "0 * * * 0" - -jobs: - pages-directory-listing-release: - - runs-on: ubuntu-latest - timeout-minutes: 3 - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - ref: pages - - - name: Generate Directory Listings - uses: jayanta525/github-pages-directory-listing@v2.0.0 - with: - FOLDER: . - - - uses: nick-fields/retry@v2 - name: Commit directory-listing - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add "**/index.html" - git reset php/phpdoc/index.html - git commit -m "generated directory-listing docs from revision ${GITHUB_SHA::7}" - git push diff --git a/.github/workflows/php-docker.yml b/.github/workflows/php-docker.yml deleted file mode 100644 index 35035911439..00000000000 --- a/.github/workflows/php-docker.yml +++ /dev/null @@ -1,50 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 Docker - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build-containers: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 6 - steps: - - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Cache Docker php-image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-xbuild-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar || true - if: steps.docker-php-image-cache.outputs.cache-hit == 'true' - - - name: Build Docker image - run: ls -l && docker build -f build/Dockerfile.php81 --build-arg BUILDKIT_INLINE_CACHE=1 -t app/php-image --cache-from=app/php-image-cache ./build - if: steps.docker-php-image-cache.outputs.cache-hit != 'true' - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - - - name: Tag Docker image - run: docker tag app/php-image app/php-image-cache && mkdir -p /tmp/docker-save && docker save app/php-image-cache -o /tmp/docker-save/snapshot.tar && ls -lh /tmp/docker-save || true - if: always() && steps.docker-php-image-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml deleted file mode 100644 index fd693cca304..00000000000 --- a/.github/workflows/phpcs.yml +++ /dev/null @@ -1,103 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PHPCS - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 5 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: PHP setup - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: simplexml,dom,xml,intl,ast,mysql,xdebug - coverage: xdebug - - # https://github.com/pre-commit/action - - name: Pre-commit dependencies - uses: actions/setup-python@v3 - - run: pip install pre-commit - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: PHP Version - run: php --version - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --optimize-autoloader - - # Docs: https://github.com/squizlabs/PHP_CodeSniffer - - name: Run PHPCodeSniffer github.com/squizlabs/PHP_CodeSniffer - run: composer app-phpcs - - # https://github.com/actions/upload-artifact - - name: Upload PHPCS artifacts - uses: actions/upload-artifact@v3 - with: - name: phpcs-output - path: | - build/tmp/phpcs.txt - retention-days: 1 - pages: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPCS artifacts - uses: actions/download-artifact@v3 - with: - name: phpcs-output - path: php/phpcs - - - uses: nick-fields/retry@v2 - name: Commit php/phpcs - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phpcs/phpcs.txt - git commit -m "generated phpcs docs from revision ${GITHUB_SHA::7}" - git push \ No newline at end of file diff --git a/.github/workflows/phpdoc.yml b/.github/workflows/phpdoc.yml deleted file mode 100644 index 693f45b023c..00000000000 --- a/.github/workflows/phpdoc.yml +++ /dev/null @@ -1,108 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PHPDocumentor - -on: - workflow_run: - workflows: [ "8.1 Docker" ] - types: - - completed - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-xbuild-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php-image-cache app/php - - - name: Docker boot - env: - SERVICES_NAME: "app.php81" - run: docker-compose up -d $SERVICES_NAME - - - run: docker-compose ps - - - name: Sleep - run: sleep 6 - timeout-minutes: 1 - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php81 composer install - - # Docs: https://phpunit.readthedocs.io/en/9.5/ - - name: Docker run PHPDoc - run: docker-compose exec -T app.php81 composer app-phpdoc - - # https://github.com/actions/upload-artifact - - name: Upload PHPDoc artifacts - uses: actions/upload-artifact@v3 - with: - name: phpdoc-output - path: | - build/tmp/phpdoc-output - retention-days: 1 - - docs: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPUnit artifacts - uses: actions/download-artifact@v3 - with: - name: phpdoc-output - path: php/phpdoc - - - uses: nick-fields/retry@v2 - name: Commit phpdoc details - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phpdoc/* - git commit -m "generated phpdoc artifacts from revision ${GITHUB_SHA::7}" - git push - diff --git a/.github/workflows/phpmd.yml b/.github/workflows/phpmd.yml deleted file mode 100644 index 3248ef07361..00000000000 --- a/.github/workflows/phpmd.yml +++ /dev/null @@ -1,98 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PHPMd - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 5 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: PHP setup - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: simplexml,dom,xml,intl,ast,mysql,xdebug - coverage: xdebug - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: PHP Version - run: php --version - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --optimize-autoloader - - # Docs: https://phpmd.org - - name: Run PHPmd phpmd.org - run: composer app-phpmd - - # https://github.com/actions/upload-artifact - - name: Upload PHPMD artifacts - uses: actions/upload-artifact@v3 - with: - name: phpmd-output - path: | - build/tmp/phpmd.txt - retention-days: 1 - pages: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - #https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPMD artifacts - uses: actions/download-artifact@v3 - with: - name: phpmd-output - path: php/phpmd - - - uses: nick-fields/retry@v2 - name: Commit php/phpmd - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phpmd/phpmd.txt - git commit -m "generated phpmd docs from revision ${GITHUB_SHA::7}" - git push diff --git a/.github/workflows/phppdepend.yml b/.github/workflows/phppdepend.yml deleted file mode 100644 index 5bc276fbf46..00000000000 --- a/.github/workflows/phppdepend.yml +++ /dev/null @@ -1,114 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PDepend - -on: - workflow_run: - workflows: [ "8.1 Docker" ] - types: - - completed - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-xbuild-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php-image-cache app/php - - - name: Docker boot - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - SERVICES_NAME: "app.php81" - run: docker-compose up -d $SERVICES_NAME - - - run: docker-compose ps - - - name: Sleep - run: sleep 6 - timeout-minutes: 1 - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php81 composer install - - # Docs: https://phpunit.readthedocs.io/en/9.5/ - - name: Docker run PHPUnit with MySQL5.7 - run: docker-compose exec -T app.php81 composer app-pdepend - - # https://github.com/actions/upload-artifact - - name: Upload Pdepend artifacts - uses: actions/upload-artifact@v3 - with: - name: pdepend-output - path: | - build/tmp/pdepend-dependency-xml.xml - build/tmp/pdepend-jdepend-chart.svg - build/tmp/pdepend-jdepend-xml.xml - build/tmp/pdepend-summary-xml.xml - build/tmp/pdepend-overview-pyramid.svg - retention-days: 1 - - badges: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPUnit artifacts - uses: actions/download-artifact@v3 - with: - name: pdepend-output - path: php/pdepend - - - uses: nick-fields/retry@v2 - name: Commit pdepend details - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/pdepend/* - git commit -m "generated pdepend artifacts from revision ${GITHUB_SHA::7}" - git push - diff --git a/.github/workflows/phpphan.yml b/.github/workflows/phpphan.yml deleted file mode 100644 index d117d98dee7..00000000000 --- a/.github/workflows/phpphan.yml +++ /dev/null @@ -1,100 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 Phan - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 5 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: PHP setup - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: simplexml,dom,xml,intl,ast,mysql,xdebug - coverage: xdebug - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: PHP Version - run: php --version - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --optimize-autoloader - - # Docs: https://github.com/phan/phan - - name: Run Phan github.com/phan/phan - run: composer app-phan > build/tmp/phan.txt 2>&1 - - # https://github.com/actions/upload-artifact - - name: Upload Phan artifacts - uses: actions/upload-artifact@v3 - with: - name: phan-output - path: | - build/tmp/phan.html - build/tmp/phan.txt - retention-days: 1 - pages: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - #https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all Phan artifacts - uses: actions/download-artifact@v3 - with: - name: phan-output - path: php/phan - - - uses: nick-fields/retry@v2 - name: Commit php/phan - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phan/phan.txt - git add php/phan/phan.html - git commit -m "generated phan docs from revision ${GITHUB_SHA::7}" - git push diff --git a/.github/workflows/phppsalm.yml b/.github/workflows/phppsalm.yml deleted file mode 100644 index 0162ca1a1a3..00000000000 --- a/.github/workflows/phppsalm.yml +++ /dev/null @@ -1,101 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 Psalm - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 5 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: PHP setup - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: simplexml,dom,xml,intl,ast,mysql,xdebug - coverage: xdebug - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: PHP Version - run: php --version - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --optimize-autoloader - - # Docs: https://github.com/psalm/shepherd - - name: Run psalm suite and send shepherd stats psalm.dev - run: composer app-psalm -- --shepherd > $PWD/build/tmp/psalm.stdout.txt - - name: Echo psalm output - run: cat $PWD/build/tmp/psalm.stdout.txt - - # https://github.com/actions/upload-artifact - - name: Upload Psalm artifacts - uses: actions/upload-artifact@v3 - with: - retention-days: 1 - name: psalm-output - path: | - build/tmp/psalm.stdout.txt - build/tmp/psalm.txt - pages: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all Psalm artifacts - uses: actions/download-artifact@v3 - with: - name: psalm-output - path: php/psalm - - - uses: nick-fields/retry@v2 - name: Commit php/phpstan - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/psalm/* - git commit -m "generated psalm docs from revision ${GITHUB_SHA::7}" - git push diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml deleted file mode 100644 index 0bace2918af..00000000000 --- a/.github/workflows/phpstan.yml +++ /dev/null @@ -1,103 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PHPStan - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 5 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: PHP setup - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: simplexml,dom,xml,intl,ast,mysql,xdebug - coverage: xdebug - - # https://github.com/pre-commit/action - - name: Pre-commit dependencies - uses: actions/setup-python@v3 - - run: pip install pre-commit - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: PHP Version - run: php --version - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --optimize-autoloader - - # Docs: https://phpstan.org - - name: Run PHPStan phpstan.org - run: composer app-phpstan - - # https://github.com/actions/upload-artifact - - name: Upload PHPStan artifacts - uses: actions/upload-artifact@v3 - with: - name: phpstan-output - path: | - build/tmp/phpstan.txt - retention-days: 1 - pages: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPStan artifacts - uses: actions/download-artifact@v3 - with: - name: phpstan-output - path: php/phpstan - - - uses: nick-fields/retry@v2 - name: Commit php/phpstan - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phpstan/phpstan.txt - git commit -m "generated phpstan docs from revision ${GITHUB_SHA::7}" - git push diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml deleted file mode 100644 index 8862b904445..00000000000 --- a/.github/workflows/phpunit.yml +++ /dev/null @@ -1,146 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: PHPUnit - -on: - workflow_run: - workflows: [ "8.1 Docker" ] - types: - - completed - -permissions: - contents: read - -jobs: - build: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-xbuild-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php-image-cache app/php - - - name: Docker boot - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - SERVICES_NAME: "app.php81 mysql mysql80" - run: docker-compose up -d $SERVICES_NAME - timeout-minutes: 6 - - - name: Wait for all services to become healthy - run: for SVC in "app.php81" "mysql" "mysql80"; do while [ "\"healthy\"" != "$(docker inspect --format '{{json .State.Health.Status }}' ${SVC})" ];do docker-compose ps && sleep 5; done; done - timeout-minutes: 2 - - - name: Sleep - run: sleep 4 - - run: docker-compose ps - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php81 composer install - - # Docs: https://phpunit.readthedocs.io/en/9.5/ - - name: Docker run PHPUnit with MySQL5.7 - run: docker-compose exec -T app.php81 composer app-phpunit-mysql57 - - - name: Docker run PHPUnit with MySQL8.0 & Coverage - run: docker-compose exec -T app.php81 composer app-phpunit-mysql80-coverage - - - name: Docker run PHPUnit badge generation - id: app-phpunit-badges-coverage - continue-on-error: true - run: | - #3 attempts to generate badges - docker-compose exec -T app.php81 composer app-phpunit-badges-coverage || \ - docker-compose exec -T app.php81 composer app-phpunit-badges-coverage || \ - docker-compose exec -T app.php81 composer app-phpunit-badges-coverage - - # Docs: https://github.com/marketplace/actions/phpunit-coverage-badge - - name: Generate PHPUnit coverage badge - uses: timkrase/phpunit-coverage-badge@v1.2.0 - with: - coverage_badge_path: 'test/tmp/phpunit-coverage-badge.svg' - push_badge: false - report: test/tmp/phpunit-clover.xml - - # https://github.com/actions/upload-artifact - - name: Upload PHPUnit artifacts - uses: actions/upload-artifact@v3 - with: - name: phpunit-output - path: | - test/tmp/html - test/tmp/xml - test/tmp/phpunit-testdox-html.html - test/tmp/phpunit-testdox-text.txt - test/tmp/phpunit-clover.xml - test/tmp/phpunit-junit.xml - test/tmp/phpunit-cobertura.xml - test/tmp/phpunit-crap4j.xml - test/tmp/phpunit-xml.xml - test/tmp/phpunit-coverage.txt - test/tmp/phpunit-coverage-badge.svg - test/tmp/phpunit-coverage-badge-lines.svg - test/tmp/phpunit-coverage-badge-classes.svg - test/tmp/phpunit-coverage-badge-methods.svg - retention-days: 1 - - badges: - needs: build - runs-on: ubuntu-latest - timeout-minutes: 2 - permissions: write-all - steps: - # https://github.com/actions/checkout - - name: Checkout pages branch - uses: actions/checkout@v3 - with: - ref: pages - - # https://github.com/marketplace/actions/download-a-build-artifact - - name: Download all PHPUnit artifacts - uses: actions/download-artifact@v3 - with: - name: phpunit-output - path: php/phpunit - - - uses: nick-fields/retry@v2 - name: Commit coverage details - continue-on-error: true - with: - timeout_seconds: 20 - max_attempts: 3 - retry_on: error - command: | - git status - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add php/phpunit/* - git commit -m "generated phpunit artifacts from revision ${GITHUB_SHA::7}" - git push - diff --git a/.github/workflows/phpunit80.yml b/.github/workflows/phpunit80.yml deleted file mode 100644 index 86e03b338d1..00000000000 --- a/.github/workflows/phpunit80.yml +++ /dev/null @@ -1,104 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.0 PHPUnit - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build-containers: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - steps: - - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Cache Docker php-image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-build80-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php80', 'composer.lock') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar || true - if: steps.docker-php-image-cache.outputs.cache-hit == 'true' - - - name: Build Docker image - run: ls -l && docker build -f build/Dockerfile.php80 --build-arg BUILDKIT_INLINE_CACHE=1 -t app/php-image --cache-from=app/php80-image-cache ./build - if: steps.docker-php-image-cache.outputs.cache-hit != 'true' - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - - - name: Tag Docker image - run: docker tag app/php-image app/php80-image-cache && mkdir -p /tmp/docker-save && docker save app/php80-image-cache -o /tmp/docker-save/snapshot.tar && ls -lh /tmp/docker-save || true - if: always() && steps.docker-php-image-cache.outputs.cache-hit != 'true' - - build: - needs: build-containers - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: List files - run: pwd && ls -l - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-build80-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php80', 'composer.lock') }} - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php80-image-cache app/php80 - - - name: Docker boot - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - SERVICES_NAME: "app.php80 mysql mysql80" - run: docker-compose up -d $SERVICES_NAME - timeout-minutes: 1 - - - name: Wait for all services to become healthy - run: for SVC in "app.php80" "mysql" "mysql80"; do while [ "\"healthy\"" != "$(docker inspect --format '{{json .State.Health.Status }}' ${SVC})" ];do docker-compose ps && sleep 5; done; done - timeout-minutes: 2 - - - name: Sleep - run: sleep 4 - - run: docker-compose ps - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php80-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php80 composer install - - # Docs: https://phpunit.readthedocs.io/en/9.5/ - - name: Docker run PHPUnit - run: docker-compose exec -T app.php80 composer app-phpunit diff --git a/.github/workflows/phpunit81.yml b/.github/workflows/phpunit81.yml deleted file mode 100644 index 5b01b1e2f22..00000000000 --- a/.github/workflows/phpunit81.yml +++ /dev/null @@ -1,102 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.1 PHPUnit - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build-containers: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - steps: - - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: List files - run: pwd && ls -l - - - name: Cache Docker php-image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-build81-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81', 'composer.lock') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar || true - if: steps.docker-php-image-cache.outputs.cache-hit == 'true' - - - name: Build Docker image - run: ls -l && docker build -f build/Dockerfile.php81 --build-arg BUILDKIT_INLINE_CACHE=1 -t app/php-image --cache-from=app/php-image-cache ./build - if: steps.docker-php-image-cache.outputs.cache-hit != 'true' - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - - - name: Tag Docker image - run: docker tag app/php-image app/php-image-cache && mkdir -p /tmp/docker-save && docker save app/php-image-cache -o /tmp/docker-save/snapshot.tar && ls -lh /tmp/docker-save || true - if: always() && steps.docker-php-image-cache.outputs.cache-hit != 'true' - - build: - needs: build-containers - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php-build81-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php81', 'composer.lock') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php-image-cache app/php81 - - - name: Docker boot - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - SERVICES_NAME: "app.php81 mysql mysql80" - run: docker-compose up -d $SERVICES_NAME - timeout-minutes: 1 - - - name: Wait for all services to become healthy - run: for SVC in "app.php81" "mysql" "mysql80"; do while [ "\"healthy\"" != "$(docker inspect --format '{{json .State.Health.Status }}' ${SVC})" ];do docker-compose ps && sleep 5; done; done - timeout-minutes: 2 - - - name: Sleep - run: sleep 4 - - run: docker-compose ps - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php81-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php81 composer install - - # Docs: https://phpunit.readthedocs.io/en/9.5/ - - name: Docker run PHPUnit - run: docker-compose exec -T app.php81 composer app-phpunit diff --git a/.github/workflows/phpunit82.yml b/.github/workflows/phpunit82.yml deleted file mode 100644 index 6e91449e751..00000000000 --- a/.github/workflows/phpunit82.yml +++ /dev/null @@ -1,101 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -name: 8.2 PHPUnit - -on: - push: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build-containers: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - steps: - - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: List files - run: pwd && ls -l - - - name: Cache Docker php-image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php82-build-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php82', 'composer.lock') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar || true - if: steps.docker-php-image-cache.outputs.cache-hit == 'true' - - - name: Build Docker image - run: ls -l && docker build -f build/Dockerfile.php82 --build-arg BUILDKIT_INLINE_CACHE=1 -t app/php-image --cache-from=app/php82-image-cache ./build - if: steps.docker-php-image-cache.outputs.cache-hit != 'true' - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - - - name: Tag Docker image - run: docker tag app/php-image app/php82-image-cache && mkdir -p /tmp/docker-save && docker save app/php82-image-cache -o /tmp/docker-save/snapshot.tar && ls -lh /tmp/docker-save || true - if: always() && steps.docker-php-image-cache.outputs.cache-hit != 'true' - - build: - needs: build-containers - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, 'skip-ci')" - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - - name: Load cached app docker image - id: docker-php-image-cache - uses: actions/cache@v3 - with: - path: /tmp/docker-save - key: ${{ runner.os }}-docker-php82-build-save-${{ hashFiles('build/Dockerfile.php.common', 'build/Dockerfile.php82', 'composer.lock') }} - - - name: Load cached Docker image - run: docker load -i /tmp/docker-save/snapshot.tar && docker tag app/php82-image-cache app/php82 - - - name: Docker boot - env: - DOCKER_BUILDKIT: '1' - COMPOSE_DOCKER_CLI_BUILD: '1' - SERVICES_NAME: "app.php82 mysql mysql80" - run: docker-compose up -d $SERVICES_NAME - timeout-minutes: 1 - - - name: Wait for all services to become healthy - run: for SVC in "app.php82" "mysql" "mysql80"; do while [ "\"healthy\"" != "$(docker inspect --format '{{json .State.Health.Status }}' ${SVC})" ];do docker-compose ps && sleep 5; done; done - timeout-minutes: 2 - - - name: Sleep - run: sleep 4 - - run: docker-compose ps - - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php82-${{ hashFiles('composer.lock') }}-composer-dev - - - name: Docker install dependencies - run: docker-compose exec -T app.php82 composer install - - - name: Docker run PHPUnit - run: docker-compose exec -T app.php82 composer app-phpunit diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 25fcf9ff116..00000000000 --- a/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT - -# .gitignore file -# @see https://github.com/github/gitignore - -# @see https://getcomposer.org -vendor - -# OSX finder artifacts -**/.DS_Store - -# JetBrains IDEs -# @see https://www.jetbrains.com/help/idea/configure-project-settings.html -# @see https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 -.idea diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000000..6b20770a1f0 --- /dev/null +++ b/.nojekyll @@ -0,0 +1,4 @@ +Fix underscore folder problem with github page +https://pages.github.com +https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/ + diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index e70c9c4c637..00000000000 --- a/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -AUTHORS - -This project is maintained by the following people. - -All maintainers must agree to the Developer Certificate of Origin - -Sergei Shiko -As a maintainer, I agree to the Developer Certificate of Origin \ No newline at end of file diff --git a/CITATION b/CITATION deleted file mode 100644 index 49c8acf08bd..00000000000 --- a/CITATION +++ /dev/null @@ -1,9 +0,0 @@ -cff-version: 1.2.0 -message: "If you use this software, please cite it as below." -authors: -- family-names: "Shilko" - given-names: "Sergei" -title: "sshilko/php-sql-mydb Component" -version: 1.0.0 -date-released: 2021-11-01 -url: "https://github.com/sshilko/php-sql-mydb" \ No newline at end of file diff --git a/CODE_OF_CONDUCT b/CODE_OF_CONDUCT deleted file mode 100644 index b57255e2f37..00000000000 --- a/CODE_OF_CONDUCT +++ /dev/null @@ -1,25 +0,0 @@ -Code of Conduct - -We are committed to fostering a welcoming community. -Any participant and contributor is required to adhere to this Code of Conduct. - -We are proud to say that we have an open source community that is welcoming, positive, and respectful to all participants, -regardless of gender, gender identity, gender presentation, sexual orientation, race, age, -disability, physical appearance, national origin, ethnicity, religion or any other protected status. -We believe our diversity makes us stronger and enriches the work we do. -In an effort to maintain a high level of respect and acceptance in our community, -we ask that anyone who participates in the this project’s open source community follow this Code of Conduct. - -By participating in the project’s open source community, you agree to: - -- Treat each other with respect. -- Respect each other’s privacy. -- Respect each other’s boundaries. -- Be thoughtful about what you say. -- Be helpful. Offer constructive criticism. -- Be lawful. Don’t post, link or attach content that violates third party intellectual property rights or violates the law. - -Discrimination, harassment or individual or coordinated attacks on contributors of any kind, will not be tolerated. - -If a participant violates this Code of Conduct, the project's members may take any action we deem appropriate, -including warning the offender, blocking them temporarily or permanently, and/or contacting law enforcement. \ No newline at end of file diff --git a/CONTRIBUTING b/CONTRIBUTING deleted file mode 100644 index dbe388adf79..00000000000 --- a/CONTRIBUTING +++ /dev/null @@ -1,76 +0,0 @@ -#### CI - -Project uses free Github actions as build/CI. -CI steps [definitions](.github) - -#### Development setup - -- Install [PHP](https://www.php.net/) & [Composer](https://getcomposer.org/) & [Docker Compose](https://docs.docker.com/compose/install/) -- Install [PHPStorm IDE](https://www.jetbrains.com/phpstorm/) with [PHP Inspections](https://github.com/kalessil/phpinspectionsea) or [VSCode IDE](https://code.visualstudio.com/) - -docker-compose up --force-recreate -d -docker-compose exec -T app.php81 composer install - -Different PHP language runtime versions are available in named containers -- PHP7.4 - *app.php* (deprecated) -- PHP8.0 - *app.php80* -- PHP8.1 - *app.php81* -- PHP8.2 - *app.php81* - -docker-compose exec %php-container% composer %composer-script% - -#### How to check code quality before commit - -git add -A -docker-compose exec app.php81 composer app-pre-commit -docker-compose exec app.php81 composer app-quality -git commit -m "new-feature-message" - -docker-compose exec -it app.php80 bash - -##### Run [PHPUnit](https://phpunit.de) test suite - -docker-compose exec app.php81 composer app-phpunit -docker-compose exec app.php81 composer app-phpunit -- --filter SelectTest -docker-compose exec app.php81 composer app-phpunit-mysql57 -- --filter escape -docker-compose exec app.php81 composer app-phpunit-mysql80 - -docker-compose exec app.php82 composer app-phpunit-mysql80 - -docker-compose exec mysql mysql -uroot -proot mydb -docker-compose exec mysql80 mysql -uroot -proot mydb - -##### Run PHP Code Beautifier & PHP [CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) (all files) - -docker-compose exec app.php81 composer app-phpcbf -docker-compose exec app.php81 composer app-phpcs - -##### Run [Psalm](https://psalm.dev) - a static analysis tool for PHP (all files) - -docker-compose exec app.php81 composer app-psalm -docker-compose exec app.php81 composer app-psalm-alter -docker-compose exec app.php81 composer app-psalm-taint - -##### Run [PHPStan](https://phpstan.org) - PHP Static Analysis Tool (all files) - -docker-compose exec app.php81 composer app-phpstan - -##### Run [PHPMD](https://phpmd.org) - PHP Mess Detector - -docker-compose exec app.php81 composer app-phpmd - -##### Run [Phan](https://github.com/phan/phan) - PHP Phan static analyzer - -docker-compose exec app.php81 composer app-phan - -##### Run [phpDocumentor](https://www.phpdoc.org) - [phpDocumentor](https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/) - -docker-compose exec app.php81 composer app-phpdoc - -##### Run [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - PHPCPD Copy/Paste Detector (CPD) for PHP code - -docker-compose exec app.php81 composer app-phpcpd - -##### Run [Pdepend](https://pdepend.org) - PHP quality of design - extensibility, reusability and maintainability - -docker-compose exec app.php81 composer app-pdepend diff --git a/DCO b/DCO deleted file mode 100644 index 0cdce0c397f..00000000000 --- a/DCO +++ /dev/null @@ -1,37 +0,0 @@ -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. -1 Letterman Drive -Suite D4700 -San Francisco, CA, 94129 - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 21ac017c6d3..00000000000 --- a/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2022 Sergei Shilko - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 1e5478c62d4..00000000000 --- a/README.md +++ /dev/null @@ -1,135 +0,0 @@ - -MyDb - Component -================= -

- Project status - active - Latest Stable Version - Total Downloads - PHP Required Version - MIT License - - Psalm Coverage - - Code size -
- PHPUnit coverage - PHPUnit classes coverage - PHPUnit lines coverage - PHPUnit methods coverage -
- 8.1 Phan build - 8.1 Psalm build - 8.1 PHPMd build - 8.1 PHPStan build - 8.1 PHPCodeSniffer build - 8.1 PHPDocumentor build - 8.1 Pdepend build - 8.1 PHPUnit build - 8.0 PHPUnit build - 8.1 PHPUnit build - 8.2 PHPUnit build - GithubPages build -
-

- -

- -Simple PHP client for MySQL database - -#### Installation - -``` -composer require sshilko/php-sql-mydb -``` - -#### [Compatibility](https://sshilko.com/php-sql-mydb/php/) - -- PHP 8.0, 8.1, 8.2 -- MySQL >=5.7.8, 8.0 -- MariaDB not compatible (TODO) - -#### How this client helps you talk SQL to MySQL server - -- Make MySQL behave like a “traditional” SQL database system - - `TRADITIONAL` mode, a simple description of this mode is [“give an error instead of a warning”](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional) -- Friendly transactions - - `autocommit = 0` - - explicit `commit` [on gracefull shutdown](https://dev.mysql.com/doc/refman/5.7/en/innodb-autocommit-commit-rollback.html) -- Explicit timeouts - - 05 seconds `client-side` connect-timeout - - 89 seconds `server-side` SELECT query timeout - - 90 seconds `client-side` read-timeout for any query - - 7200 seconds non-interactive connection `idle timeout` - - `mysqlnd.net_read_timeout` - - respect client disconnect in php-fpm `function.ignore-user-abort.php` -- Performance boost - - increased `MYSQLI_OPT_NET_READ_BUFFER_SIZE` - - increased `MYSQLI_OPT_NET_CMD_BUFFER_SIZE` - - read-only InnoDB [optimizations](https://dev.mysql.com/doc/refman/5.6/en/innodb-performance-ro-txn.html) - - READ COMMITED session transaction isolation level for readonly connections - - async command execution - - move mysql resultset to PHP userspace memory `MYSQLI_STORE_RESULT_COPY_DATA` - - use of `fetch_all` from [PHP Mysql native driver](https://www.php.net/manual/en/intro.mysqlnd.php) -- UTF-8 - - `utf8mb4` character set - - `UTC` timezone -- Quality error handling - - PHP default error-reporting `E_ALL & ~E_WARNING & ~E_NOTICE` - - MySQL default error-reporting `MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT ^ MYSQLI_REPORT_INDEX` - - `SIGTERM, SIGINT, SIGHUP` signals trap - - connection retry -- PHPUnit & Static code analysis - - unit-tested, static analysed codebase - -#### What is the best use-case for this library - -- High performance, low-latency data-intensive applications -- No prepared statements requirement -- No 3rd party dependencies -- No run-time/compile-time steps -- Easy to start with and/or [integrate](https://refactoring.guru/design-patterns/php) into existing codebase - -#### Out of scope - -This library is **not** intending to become a framework, to *keep focus* and minimize codebase, it does not provide - -- Input [validation](https://symfony.com/doc/current/validation.html), [API](https://refactoring.guru/design-patterns/facade) facade -- [Object-relational mapping](https://en.wikipedia.org/wiki/Object–relational_mapping), ORM -- [Active record](https://en.wikipedia.org/wiki/Active_record_pattern) pattern -- [Repository](https://symfony.com/doc/current/doctrine.html#querying-for-objects-the-repository) pattern -- Import and export of data - -please re-use existing solutions that best fit your requirements. - -#### Why this library exists - -* MySQL database is fast, reliable and scalable, php runtime is the same -* Value developers time and do not add complexity where possible -* Measure app's performance with real-world datasets and organic load -* Optimize for my use-case, focus on bottlenecks, remember that there is no ~~NoSQL~~ silver bullet -* Do not optimize early - resources like CPU, memory are cheap -* Focus on building architecture, learn from others and improve over time - -#### Future roadmap - -- MariaDB compatibility layer (variables and init command syntax is different between mysql and mariadb) -- MydbFactory responsible for initializing defaults - -#### Contributing - -* Please read [contributing](CONTRIBUTING) document - -#### Authors - -Sergei Shilko diff --git a/build/.pre-commit-config.yaml b/build/.pre-commit-config.yaml deleted file mode 100644 index 1995903f653..00000000000 --- a/build/.pre-commit-config.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT ---- -# https://pre-commit.com/#installation -#default_stages: [commit, push] -default_language_version: - # force all unspecified Python hooks to run python3 - python: python3 -minimum_pre_commit_version: "1.20.0" -exclude: ^(vendor/.*)$ -repos: - - repo: local - hooks: - - id: php-code-syntax-check - name: php-code-syntax-check - entry: php -l -d display_errors=0 - language: system - types: [php] - - id: php-code-phpcbf - name: php-code-phpcbf - entry: php ./vendor/bin/phpcbf --standard=build/phpcs-ruleset.xml - log_file: build/tmp/phpcbf.txt - language: system - types: [php] - verbose: true - - id: php-code-phpcs - name: php-code-phpcs - entry: php ./vendor/bin/phpcs --standard=build/phpcs-ruleset.xml - log_file: build/tmp/phpcs.txt - language: system - types: [php] - verbose: true - - id: php-code-phpstan - name: php-code-phpstan - entry: php ./vendor/bin/phpstan analyse --memory-limit=256M --no-progress -c build/phpstan.neon - log_file: build/tmp/phpstan.txt - language: system - types: [php] - verbose: true - - id: php-code-psalm-single-changed-file-check - name: php-code-psalm-single-changed-file-check - entry: | - php ./vendor/bin/psalm.phar --config build/psalm.xml - --memory-limit=256M - --no-diff - --long-progress - --show-info=true - --stats - --disable-extension=xdebug - language: system - types: [php] - verbose: false - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.0.1 - hooks: - - id: end-of-file-fixer - - id: fix-byte-order-marker - - id: mixed-line-ending - - id: trailing-whitespace - - id: check-case-conflict - - id: check-json - - id: check-xml - - id: check-yaml diff --git a/build/Dockerfile.php.common b/build/Dockerfile.php.common deleted file mode 100644 index 8ba7f5a0024..00000000000 --- a/build/Dockerfile.php.common +++ /dev/null @@ -1,83 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -LABEL author='Sergei Shilko ' - -ENV DEBIAN_FRONTEND noninteractive - -# /usr/share/man/man1 needs to be created before installing openjdk-11-jre lest it will fail -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199#23 -RUN mkdir -p /usr/share/man/man1 - -# https://wiki.ubuntu.com/ReducingDiskFootprint -RUN set -eux; \ -echo '\n\ -path-exclude /usr/share/doc/* \n\ -path-include /usr/share/doc/*/copyright \n\ -path-exclude /usr/share/man/* \n\ -path-exclude /usr/share/groff/* \n\ -path-exclude /usr/share/info/* \n\ -path-exclude /usr/share/locale/* \n\ -path-exclude /usr/share/lintian/* \n\ -path-exclude /usr/share/linda/* \n\ -' >> /etc/dpkg/dpkg.cfg.d/01_excludes && \ - cat /etc/dpkg/dpkg.cfg.d/01_excludes && \ - echo 'APT::Install-Recommends "0";' > /etc/apt/apt.conf.d/no-recommends && \ - find /usr/share/locale -maxdepth 1 -mindepth 1 ! -name 'en' |xargs rm -rf && \ - apt-get update && \ - docker-php-ext-install -j$(nproc) mysqli && \ - docker-php-ext-install -j$(nproc) pcntl && \ - apt-get install -y --no-install-recommends \ - unzip \ - python3-pip \ - pre-commit \ - locales \ - netcat-traditional \ - git && \ - apt-get clean && \ - apt-get -y autoremove && \ - rm -rf /var/lib/{apt,cache,log}/ && \ - rm -rf /tmp/* /var/tmp/* && \ - echo "* hard nofile 524280" >> /etc/security/limits.conf && \ - echo "* soft nofile 262140" >> /etc/security/limits.conf && \ - echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \ - /usr/sbin/locale-gen && \ - echo "TZ=Etc/UTC" >> /etc/environment && \ - echo 'Done' - -ENV LANG "en_US.UTF-8" -ENV LC_ALL "en_US.UTF-8" -ENV TZ "Etc/UTC" - -HEALTHCHECK --interval=10s --timeout=1s --retries=2 --start-period=5s CMD /usr/local/bin/php -v || exit 1 -WORKDIR /app -COPY --from=0 /usr/bin/composer /usr/bin/composer - -#https://www.phpdoc.org -ADD https://phpdoc.org/phpDocumentor.phar /usr/bin/phpdoc -RUN chmod +x /usr/bin/phpdoc - -#phan/phan php-ast dependency -#https://github.com/mlocati/docker-php-extension-installer -COPY --from=mlocati/php-extension-installer:1.5.49 /usr/bin/install-php-extensions /usr/local/bin/ -RUN install-php-extensions ast - -ADD https://phar.phpunit.de/phpcpd.phar /usr/bin/phpcpd -RUN chmod +x /usr/bin/phpcpd - -#phpunit coverage requirement -ARG xdebug_php_extension -RUN mkdir /root/tmp && pear config-set temp_dir /root/tmp && install-php-extensions ${xdebug_php_extension} -ENV XDEBUG_MODE "coverage" - -RUN docker-php-ext-enable opcache - -STOPSIGNAL SIGINT -ENTRYPOINT [ "/bin/bash" ] -CMD ["-c", "trap exit INT; while sleep 1; do sleep 1; done;"] diff --git a/build/Dockerfile.php74 b/build/Dockerfile.php74 deleted file mode 100644 index 28c049e3a64..00000000000 --- a/build/Dockerfile.php74 +++ /dev/null @@ -1,16 +0,0 @@ -# syntax = edrevo/dockerfile-plus - -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -FROM --platform=linux/amd64 library/composer:2.0 -FROM --platform=linux/amd64 library/php:7.4-cli -INCLUDE+ Dockerfile.php.common - -# Change this line to invalidate github workflow cache for app/php-image-cache:latest . diff --git a/build/Dockerfile.php80 b/build/Dockerfile.php80 deleted file mode 100644 index 72c2eb86e13..00000000000 --- a/build/Dockerfile.php80 +++ /dev/null @@ -1,14 +0,0 @@ -# syntax = edrevo/dockerfile-plus - -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -FROM --platform=linux/amd64 library/composer:2.4 -FROM --platform=linux/amd64 library/php:8.0-cli -INCLUDE+ Dockerfile.php.common diff --git a/build/Dockerfile.php81 b/build/Dockerfile.php81 deleted file mode 100644 index 6d6689a8597..00000000000 --- a/build/Dockerfile.php81 +++ /dev/null @@ -1,14 +0,0 @@ -# syntax = edrevo/dockerfile-plus - -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -FROM --platform=linux/amd64 library/composer:2.4 -FROM --platform=linux/amd64 library/php:8.1-cli -INCLUDE+ Dockerfile.php.common diff --git a/build/Dockerfile.php82 b/build/Dockerfile.php82 deleted file mode 100644 index 08e15a5463e..00000000000 --- a/build/Dockerfile.php82 +++ /dev/null @@ -1,14 +0,0 @@ -# syntax = edrevo/dockerfile-plus - -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -FROM --platform=linux/amd64 library/composer:latest -FROM --platform=linux/amd64 library/php:8.2-cli -INCLUDE+ Dockerfile.php.common diff --git a/build/README.md b/build/README.md deleted file mode 100644 index 6d1360bfa66..00000000000 --- a/build/README.md +++ /dev/null @@ -1,33 +0,0 @@ - -#### Code quality configuration - -- [Pre-commit](https://pre-commit.com/) -- [PHPCS CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) -- [PHPCS CodeBeautifier](https://github.com/squizlabs/PHP_CodeSniffer) -- [PHP MessDetector](https://phpmd.org/) -- [PHP Psalm](https://psalm.dev/) -- [phpDocumentor](https://www.phpdoc.org) -- [phan/phan](https://github.com/phan/phan) -- [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - -#### Artifacts and other metadata expects few github branches to exist - -- pages - -Use following commands to pre-create branches -``` -git switch --orphan -git commit --allow-empty -m "Initial commit on empty branch" -git push -u origin -``` \ No newline at end of file diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml deleted file mode 100644 index edbdafbf5d6..00000000000 --- a/build/docker-compose.yaml +++ /dev/null @@ -1,122 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -x-app: &app - pull_policy: never - #container_name: app - tty: true - stdin_open: true - dns: 1.1.1.1 - dns_opt: - - use-vc - stop_grace_period: 4s - platform: linux/amd64 - logging: - options: - max-size: "1m" - max-file: "2" - healthcheck: - test: ["CMD", "nc", "-w1", "-zv", "mysql", "3306"] - #test: ["CMD", "php", "examples/example.php"] - timeout: 2s - start_period: 5s - interval: 2s - retries: 3 - cpus: 1.5 - mem_limit: "1100M" - pids_limit: 100 - ulimits: - nproc: 65535 - nofile: - soft: 262140 - hard: 262140 - tmpfs: - - /tmp - volumes: - - ./php.ini:/usr/local/etc/php/php.ini:ro,cached - - ./../:/app:rw,cached - sysctls: - net.ipv4.tcp_synack_retries: 2 # Number of times SYNACKs for passive TCP connection. - net.ipv4.ip_local_port_range: '2000 65535' # Allowed local port range - net.ipv4.tcp_rfc1337: 1 # Protect Against TCP Time-Wait - net.ipv4.tcp_fin_timeout: 15 # Decrease the time default value for tcp_fin_timeout connection -# fs.file-max: 2097152 # Increase size of file handles and inode cache -# vm.swappiness: 10 # Do less swapping -# vm.dirty_ratio: 60 # Do less swapping -# vm.dirty_background_ratio: 2 # Do less swapping - - net.ipv4.tcp_keepalive_time: 300 # Decrease the time default value for connections to keep alive - net.ipv4.tcp_keepalive_probes: 5 # Decrease the time default value for connections to keep alive - net.ipv4.tcp_keepalive_intvl: 15 # Decrease the time default value for connections to keep alive -# net.core.rmem_default: 31457280 # Default Socket Receive Buffer -# net.core.rmem_max: 12582912 # Maximum Socket Receive Buffer -# net.core.wmem_default: 31457280 # Default Socket Send Buffer -# net.core.wmem_max: 12582912 # Maximum Socket Send Buffer - net.core.somaxconn: 4096 # Increase number of incoming connections -# net.core.netdev_max_backlog: 65536 # Increase number of incoming connections backlog -# net.core.optmem_max: 25165824 # Increase the maximum amount of option memory buffers -# net.ipv4.tcp_mem: '65536 131072 262144' # Increase the maximum total buffer-space allocatable -# net.ipv4.udp_mem: '65536 131072 262144' # This is measured in units of pages (4096 bytes) - net.ipv4.tcp_rmem: 8192 87380 16777216 # Increase the read-buffer space allocatable - net.ipv4.udp_rmem_min: 16384 # Increase the read-buffer space allocatable - net.ipv4.tcp_wmem: 8192 65536 16777216 # Increase the write-buffer-space allocatable - net.ipv4.udp_wmem_min: 16384 # Increase the write-buffer-space allocatable - net.ipv4.tcp_max_tw_buckets: 1440000 # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks -# net.ipv4.tcp_tw_recycle: 1 # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks - net.ipv4.tcp_tw_reuse: 1 # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks - - environment: - XDEBUG_MODE: "off" - COMPOSER_NO_AUDIT: "1" - COMPOSER_PROCESS_TIMEOUT: 300 - COMPOSER_NO_INTERACTION: "1" - COMPOSER_DISABLE_XDEBUG_WARN: "1" - extra_hosts: - - "host.docker.internal:host-gateway" - restart: on-failure:2 - -version: "3.7" -services: - app.php: - <<: *app - image: app/php - container_name: app.php - build: - context: . - dockerfile: Dockerfile.php74 - args: - xdebug_php_extension: xdebug-3.0.0 - app.php80: - <<: *app - image: app/php80 - container_name: app.php80 - build: - context: . - dockerfile: Dockerfile.php80 - args: - xdebug_php_extension: xdebug-3.1.6 - app.php81: - <<: *app - image: app/php81 - container_name: app.php81 - build: - context: . - dockerfile: Dockerfile.php81 - args: - xdebug_php_extension: xdebug-3.1.6 - app.php82: - <<: *app - image: app/php82 - container_name: app.php82 - build: - context: . - dockerfile: Dockerfile.php82 - args: - xdebug_php_extension: xdebug-3.2.0 - diff --git a/build/pdepend.xml b/build/pdepend.xml deleted file mode 100644 index 93b81fee98f..00000000000 --- a/build/pdepend.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Arial - 14 - - - - file - - - - \ No newline at end of file diff --git a/build/phan.php b/build/phan.php deleted file mode 100644 index 8ebe4701c8c..00000000000 --- a/build/phan.php +++ /dev/null @@ -1,334 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -use Phan\Issue; - -/** - * This configuration will be read and overlaid on top of the - * default configuration. Command-line arguments will be applied - * after this file is read. - * @phpcs:disable - * @see https://github.com/phan/phan/blob/master/internal/CLI-HELP.md - */ -return [ - // The number of processes to fork off during the analysis - // phase. - 'processes' => 1, - - // The minimum severity level to report on. This can be - // set to Issue::SEVERITY_LOW, Issue::SEVERITY_NORMAL or - // Issue::SEVERITY_CRITICAL. - 'minimum_severity' => Issue::SEVERITY_LOW, - - 'suppress_issue_types' => [ - 'PhanParamNameIndicatingUnusedInClosure' - ], - - // Supported values: `'5.6'`, `'7.0'`, `'7.1'`, `'7.2'`, `'7.3'`, - // `'7.4'`, `'8.0'`, `'8.1'`, `null`. - // If this is set to `null`, - // then Phan assumes the PHP version which is closest to the minor version - // of the php executable used to execute Phan. - // - // Note that the **only** effect of choosing `'5.6'` is to infer - // that functions removed in php 7.0 exist. - // (See `backward_compatibility_checks` for additional options) - // TODO: Set this. - 'target_php_version' => '8.1', - 'minimum_target_php_version' => '8.0', - - // A list of directories that should be parsed for class and - // method information. After excluding the directories - // defined in exclude_analysis_directory_list, the remaining - // files will be statically analyzed for errors. - // - // Thus, both first-party and third-party code being used by - // your application should be included in this list. - 'directory_list' => [ - 'src', - 'vendor', - ], - - // A regex used to match every file name that you want to - // exclude from parsing. Actual value will exclude every - // "test", "tests", "Test" and "Tests" folders found in - // "vendor/" directory. - 'exclude_file_regex' => '@^vendor/.*/(tests?|Tests?)/@', - - // A directory list that defines files that will be excluded - // from static analysis, but whose class and method - // information should be included. - // - // Generally, you'll want to include the directories for - // third-party code (such as "vendor/") in this list. - // - // n.b.: If you'd like to parse but not analyze 3rd - // party code, directories containing that code - // should be added to both the `directory_list` - // and `exclude_analysis_directory_list` arrays. - 'exclude_analysis_directory_list' => [ - 'vendor/', - ], - - # ------------------------------------------------------ - # ADVANCED SETTINGS ------------------------------------ - # ------------------------------------------------------ - - // Default: true. If this is set to true, - // and target_php_version is newer than the version used to run Phan, - // Phan will act as though functions added in newer PHP versions exist. - // - // NOTE: Currently, this only affects Closure::fromCallable - 'pretend_newer_core_functions_exist' => true, - - // If true, missing properties will be created when - // they are first seen. If false, we'll report an - // error message. - 'allow_missing_properties' => false, - - // Allow null to be cast as any type and for any - // type to be cast to null. - 'null_casts_as_any_type' => false, - - // Allow null to be cast as any array-like type - // This is an incremental step in migrating away from null_casts_as_any_type. - // If null_casts_as_any_type is true, this has no effect. - 'null_casts_as_array' => false, - - // Allow any array-like type to be cast to null. - // This is an incremental step in migrating away from null_casts_as_any_type. - // If null_casts_as_any_type is true, this has no effect. - 'array_casts_as_null' => false, - - // If enabled, Phan will warn if **any** type in a method invocation's object - // is definitely not an object, - // or if **any** type in an invoked expression is not a callable. - // Setting this to true will introduce numerous false positives - // (and reveal some bugs). - 'strict_method_checking' => true, - - // If enabled, Phan will warn if **any** type in the argument's union type - // cannot be cast to a type in the parameter's expected union type. - // Setting this to true will introduce numerous false positives - // (and reveal some bugs). - 'strict_param_checking' => true, - - // If enabled, Phan will warn if **any** type in a property assignment's union type - // cannot be cast to a type in the property's declared union type. - // Setting this to true will introduce numerous false positives - // (and reveal some bugs). - // (For self-analysis, Phan has a large number of suppressions and file-level suppressions, due to \ast\Node being difficult to type check) - 'strict_property_checking' => true, - - // If enabled, Phan will warn if **any** type in a returned value's union type - // cannot be cast to the declared return type. - // Setting this to true will introduce numerous false positives - // (and reveal some bugs). - // (For self-analysis, Phan has a large number of suppressions and file-level suppressions, due to \ast\Node being difficult to type check) - 'strict_return_checking' => true, - - // If enabled, Phan will warn if **any** type of the object expression for a property access - // does not contain that property. - 'strict_object_checking' => true, - - // If enabled, scalars (int, float, bool, string, null) - // are treated as if they can cast to each other. - // This does not affect checks of array keys. See `scalar_array_key_cast`. - 'scalar_implicit_cast' => false, - - // If enabled, any scalar array keys (int, string) - // are treated as if they can cast to each other. - // E.g. `array` can cast to `array` and vice versa. - // Normally, a scalar type such as int could only cast to/from int and mixed. - 'scalar_array_key_cast' => false, - - // If this has entries, scalars (int, float, bool, string, null) - // are allowed to perform the casts listed. - // - // E.g. `['int' => ['float', 'string'], 'float' => ['int'], 'string' => ['int'], 'null' => ['string']]` - // allows casting null to a string, but not vice versa. - // (subset of `scalar_implicit_cast`) - 'scalar_implicit_partial' => [], - - // If true, Phan will convert the type of a possibly undefined array offset to the nullable, defined equivalent. - // If false, Phan will convert the type of a possibly undefined array offset to the defined equivalent (without converting to nullable). - 'convert_possibly_undefined_offset_to_nullable' => false, - - // If true, seemingly undeclared variables in the global - // scope will be ignored. - // - // This is useful for projects with complicated cross-file - // globals that you have no hope of fixing. - 'ignore_undeclared_variables_in_global_scope' => false, - - // Backwards Compatibility Checking (This is very slow) - 'backward_compatibility_checks' => false, - - // If true, check to make sure the return type declared - // in the doc-block (if any) matches the return type - // declared in the method signature. - 'check_docblock_signature_return_type_match' => true, - - // If true, check to make sure the param types declared - // in the doc-block (if any) matches the param types - // declared in the method signature. - 'check_docblock_signature_param_type_match' => true, - - // If true, make narrowed types from phpdoc params override - // the real types from the signature, when real types exist. - // (E.g. allows specifying desired lists of subclasses, - // or to indicate a preference for non-nullable types over nullable types) - // - // Affects analysis of the body of the method and the param types passed in by callers. - // - // (*Requires `check_docblock_signature_param_type_match` to be true*) - 'prefer_narrowed_phpdoc_param_type' => true, - - // (*Requires `check_docblock_signature_return_type_match` to be true*) - // - // If true, make narrowed types from phpdoc returns override - // the real types from the signature, when real types exist. - // - // (E.g. allows specifying desired lists of subclasses, - // or to indicate a preference for non-nullable types over nullable types) - // Affects analysis of return statements in the body of the method and the return types passed in by callers. - 'prefer_narrowed_phpdoc_return_type' => true, - - // If enabled, check all methods that override a - // parent method to make sure its signature is - // compatible with the parent's. This check - // can add quite a bit of time to the analysis. - // This will also check if final methods are overridden, etc. - 'analyze_signature_compatibility' => true, - - // Set this to true to make Phan guess that undocumented parameter types - // (for optional parameters) have the same type as default values - // (Instead of combining that type with `mixed`). - // E.g. `function($x = 'val')` would make Phan infer that $x had a type of `string`, not `string|mixed`. - // Phan will not assume it knows specific types if the default value is false or null. - 'guess_unknown_parameter_type_using_default' => false, - - // Allow adding types to vague return types such as @return object, @return ?mixed in function/method/closure union types. - // Normally, Phan only adds inferred returned types when there is no `@return` type or real return type signature.. - // This setting can be disabled on individual methods by adding `@phan-hardcode-return-type` to the doc comment. - // - // Disabled by default. This is more useful with `--analyze-twice`. - 'allow_overriding_vague_return_types' => true, - - // When enabled, infer that the types of the properties of `$this` are equal to their default values at the start of `__construct()`. - // This will have some false positives due to Phan not checking for setters and initializing helpers. - // This does not affect inherited properties. - 'infer_default_properties_in_construct' => true, - - // Set this to true to enable the plugins that Phan uses to infer more accurate return types of `implode`, `json_decode`, and many other functions. - // - // Phan is slightly faster when these are disabled. - 'enable_extended_internal_return_type_plugins' => true, - - // This setting maps case-insensitive strings to union types. - // - // This is useful if a project uses phpdoc that differs from the phpdoc2 standard. - // - // If the corresponding value is the empty string, - // then Phan will ignore that union type (E.g. can ignore 'the' in `@return the value`) - // - // If the corresponding value is not empty, - // then Phan will act as though it saw the corresponding UnionTypes(s) - // when the keys show up in a UnionType of `@param`, `@return`, `@var`, `@property`, etc. - // - // This matches the **entire string**, not parts of the string. - // (E.g. `@return the|null` will still look for a class with the name `the`, but `@return the` will be ignored with the below setting) - // - // (These are not aliases, this setting is ignored outside of doc comments). - // (Phan does not check if classes with these names exist) - // - // Example setting: `['unknown' => '', 'number' => 'int|float', 'char' => 'string', 'long' => 'int', 'the' => '']` - 'phpdoc_type_mapping' => [ ], - - // Set to true in order to attempt to detect dead - // (unreferenced) code. Keep in mind that the - // results will only be a guess given that classes, - // properties, constants and methods can be referenced - // as variables (like `$class->$property` or - // `$class->$method()`) in ways that we're unable - // to make sense of. - // - // To more aggressively detect dead code, - // you may want to set `dead_code_detection_prefer_false_negative` to `false`. - 'dead_code_detection' => false, - - // Set to true in order to attempt to detect unused variables. - // `dead_code_detection` will also enable unused variable detection. - // - // This has a few known false positives, e.g. for loops or branches. - 'unused_variable_detection' => false, - - // Set to true in order to force tracking references to elements - // (functions/methods/consts/protected). - // dead_code_detection is another option which also causes references - // to be tracked. - 'force_tracking_references' => false, - - // Set to true in order to attempt to detect redundant and impossible conditions. - // - // This has some false positives involving loops, - // variables set in branches of loops, and global variables. - 'redundant_condition_detection' => true, - - // Set to true in order to attempt to detect error-prone truthiness/falsiness checks. - // - // This is not suitable for all codebases. - 'error_prone_truthy_condition_detection' => true, - - // Enable this to warn about harmless redundant use for classes and namespaces such as `use Foo\bar` in namespace Foo. - // - // Note: This does not affect warnings about redundant uses in the global namespace. - 'warn_about_redundant_use_namespaced_class' => true, - - // If true, then run a quick version of checks that takes less time. - // False by default. - 'quick_mode' => false, - - // If true, then before analysis, try to simplify AST into a form - // which improves Phan's type inference in edge cases. - // - // This may conflict with 'dead_code_detection'. - // When this is true, this slows down analysis slightly. - // - // E.g. rewrites `if ($a = value() && $a > 0) {...}` - // into $a = value(); if ($a) { if ($a > 0) {...}}` - 'simplify_ast' => true, - - // If true, Phan will read `class_alias` calls in the global scope, - // then (1) create aliases from the *parsed* files if no class definition was found, - // and (2) emit issues in the global scope if the source or target class is invalid. - // (If there are multiple possible valid original classes for an aliased class name, - // the one which will be created is unspecified.) - // NOTE: THIS IS EXPERIMENTAL, and the implementation may change. - 'enable_class_alias_support' => false, - - // Enable or disable support for generic templated - // class types. - 'generic_types_enabled' => true, - - // If enabled, warn about throw statement where the exception types - // are not documented in the PHPDoc of functions, methods, and closures. - 'warn_about_undocumented_throw_statements' => true, - - // If enabled (and warn_about_undocumented_throw_statements is enabled), - // warn about function/closure/method calls that have (at)throws - // without the invoking method documenting that exception. - 'warn_about_undocumented_exceptions_thrown_by_invoked_functions' => true, -]; diff --git a/build/php.ini b/build/php.ini deleted file mode 100644 index cfc6a547d36..00000000000 --- a/build/php.ini +++ /dev/null @@ -1,75 +0,0 @@ -;This file is part of the sshilko/php-sql-mydb package. -; -;(c) Sergei Shilko -; -;MIT License -; -;For the full copyright and license information, please view the LICENSE -;file that was distributed with this source code. -;@license https://opensource.org/licenses/mit-license.php MIT -[VERBOSE] -display_errors=false -error_reporting=E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT -expose_php=false -log_errors_max_len=8192 -log_errors=true -[RUNTIME] -memory_limit=536870912 -max_execution_time=901 -zend.enable_gc=1 -zend.detect_unicode=0 -zend.assertions=-1 -default_charset=UTF-8 -date.timezone=UTC -[IO] -always_populate_raw_post_data=-1 -enable_post_data_reading=0 -max_input_time=20 -max_input_vars=100 -post_max_size=1M -max_file_uploads=2 -upload_max_filesize=100K -error_log=/dev/null -[FILES] -cgi.fix_pathinfo=1 -realpath_cache_size=256k -realpath_cache_ttl=86400 -include_path=. -user_ini.cache_ttl=86400 -[SESSION] -session.auto_start=false -session.cache_expire=300 -session.use_cookies=false -session.lazy_write=1 -session.upload_progress.enabled=false -[OPCACHE] -opcache.enable_file_override=1 -opcache.memory_consumption=96 -opcache.interned_strings_buffer=16 -opcache.max_accelerated_files=7963 -opcache.save_comments=1 -opcache.consistency_checks=0 -opcache.enable=1 -opcache.enable_cli=1 -opcache.optimization_level=0xFFFFFFFF -opcache.huge_code_pages=0 -opcache.revalidate_freq=2 -opcache.validate_timestamps=1 -;opcache.blacklist_filename=/tmp/opcache.blacklist_filename -[JIT] -opcache.jit_buffer_size=100M -opcache.jit=0202 -[MYSQLND] -mysqli.allow_persistent=true -mysqli.reconnect=Off -mysqlnd.collect_statistics=0 -mysqlnd.net_cmd_buffer_size=6144 -mysqlnd.net_read_buffer_size=49152 -mysqlnd.net_read_timeout=899 -mysqlnd.collect_memory_statistics=0 -;default mysql connection options -mysqli.default_host='127.0.0.1' -mysqli.default_user='default_user' -mysqli.default_pw='default_pw' -mysqli.default_port='3306' - diff --git a/build/phpcs-ruleset.xml b/build/phpcs-ruleset.xml deleted file mode 100644 index e9295f1eb43..00000000000 --- a/build/phpcs-ruleset.xml +++ /dev/null @@ -1,302 +0,0 @@ - - - -PSR1, PSR2, PSR-12, Squizlabs, SlevomatCodingStandard - - - - */vendor/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - - 5 - - - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - - - - - - - - - - - - - 5 - - - 5 - - - - - - 5 - - - 5 - - - 5 - - - - - - - - - - - - - - - - - - - - 9 - warning - - - 9 - warning - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - - - - - - - - 0 - - diff --git a/build/phpdoc.xml b/build/phpdoc.xml deleted file mode 100644 index a811d9dcce1..00000000000 --- a/build/phpdoc.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - phpDocumentor - - tmp/phpdoc-output - tmp/phpdoc-cache - - - latest - - - src - - Application - - TODO - FIXME - - - - diff --git a/build/phpmd-rulesets.xml b/build/phpmd-rulesets.xml deleted file mode 100644 index 4e96e2e1d96..00000000000 --- a/build/phpmd-rulesets.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - 25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/phpstan.neon b/build/phpstan.neon deleted file mode 100644 index 48bfde72eee..00000000000 --- a/build/phpstan.neon +++ /dev/null @@ -1,21 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -parameters: - level: 0 - tmpDir: tmp - paths: - - ../src - bootstrapFiles: - - ../test/phpunit.xml.bootstrap.php - excludePaths: - - ../test/* - parallel: - maximumNumberOfProcesses: 4 - processTimeout: 300.0 diff --git a/build/psalm.xml b/build/psalm.xml deleted file mode 100644 index ef7df8f0a83..00000000000 --- a/build/psalm.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - diff --git a/build/tmp/.gitignore b/build/tmp/.gitignore deleted file mode 100644 index c96a04f008e..00000000000 --- a/build/tmp/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore \ No newline at end of file diff --git a/composer.json b/composer.json deleted file mode 100644 index 620be13ff34..00000000000 --- a/composer.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "name": "sshilko/php-sql-mydb", - "type": "library", - "description": "Simple yet powerful PHP wrapper for MySQL", - "license": "MIT", - "authors": [ - { - "name": "Sergei Shilko", - "email": "contact@sshilko.com", - "homepage": "https://github.com/sshilko", - "role": "Developer" - } - ], - "keywords": ["mysql", "php", "database", "mysqli", "pdo", "mysqlnd"], - "config": { - "vendor-dir": "vendor", - "preferred-install": { - "*": "dist" - }, - "prepend-autoloader": false, - "optimize-autoloader": true, - "classmap-authoritative": false, - "process-timeout": 360, - "sort-packages": true, - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, - "scripts": { - "app-pre-commit": [ - "@putenv XDEBUG_MODE=off", - "pre-commit run --config build/.pre-commit-config.yaml" - ], - "app-quality": [ - "@app-phpcbf", - "@app-phpcs", - "@app-phpcpd", - "@app-pdepend", - "@app-phpmd", - "@app-phpstan", - "@app-psalm-alter", - "@app-psalm-taint", - "@app-psalm", - "@app-phan" - ], - "app-psalm":[ - "@putenv XDEBUG_MODE=off", - "php ./vendor/bin/psalm.phar --php-version=$(php -r 'echo PHP_VERSION;') --config build/psalm.xml --memory-limit=-1 --no-diff --show-info=true --long-progress --stats --disable-extension=xdebug --report=$PWD/build/tmp/psalm.txt $1" - ], - "app-psalm-alter": [ - "@putenv XDEBUG_MODE=off", - "php ./vendor/bin/psalm.phar --php-version=$(php -r 'echo PHP_VERSION;') --config build/psalm.xml --alter --issues=MissingParamType,MissingReturnType,InvalidReturnType,InvalidNullableReturnType,InvalidFalsableReturnType,PossiblyUndefinedVariable,UnnecessaryVarAnnotation,ParamNameMismatch" - ], - "app-psalm-taint": [ - "@putenv XDEBUG_MODE=off", - "php ./vendor/bin/psalm.phar --php-version=$(php -r 'echo PHP_VERSION;') --config build/psalm.xml --taint-analysis --long-progress --disable-extension=xdebug" - ], - "app-phpcbf":[ - "@putenv XDEBUG_MODE=off", - "pre-commit run --all-files --config build/.pre-commit-config.yaml php-code-phpcbf" - ], - "app-phpcs":[ - "@putenv XDEBUG_MODE=off", - "pre-commit run --all-files --config build/.pre-commit-config.yaml php-code-phpcs" - ], - "app-phpstan":[ - "@putenv XDEBUG_MODE=off", - "pre-commit run --all-files --config build/.pre-commit-config.yaml php-code-phpstan" - ], - "app-phpmd": [ - "@putenv XDEBUG_MODE=off", - "php ./vendor/phpmd/phpmd/src/bin/phpmd --reportfile build/tmp/phpmd.txt src/ ansi build/phpmd-rulesets.xml; cat build/tmp/phpmd.txt" - ], - "app-phpunit": [ - "@app-phpunit-mysql57", - "@app-phpunit-mysql80" - ], - "app-phpunit-mysql57": [ - "@putenv XDEBUG_MODE=off", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=mysql", - "php ./vendor/phpunit/phpunit/phpunit --no-coverage --configuration test/phpunit.xml $1" - ], - "app-phpunit-mysql80": [ - "@putenv XDEBUG_MODE=off", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=mysql80", - "php ./vendor/phpunit/phpunit/phpunit --no-coverage --configuration test/phpunit.xml $1" - ], - "app-phpunit-maria10": [ - "@putenv XDEBUG_MODE=off", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=maria10", - "php ./vendor/phpunit/phpunit/phpunit --no-coverage --configuration test/phpunit.xml $1" - ], - "app-phpunit-mysql57-coverage": [ - "@putenv XDEBUG_MODE=coverage", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=mysql", - "php ./vendor/phpunit/phpunit/phpunit --configuration test/phpunit.xml" - ], - "app-phpunit-mysql80-coverage": [ - "@putenv XDEBUG_MODE=coverage", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=mysql80", - "php ./vendor/phpunit/phpunit/phpunit --configuration test/phpunit.xml" - ], - "app-phpunit-maria10-coverage": [ - "@putenv XDEBUG_MODE=coverage", - "@putenv PHPUNIT_MYSQL_MYDB1_HOST=maria10", - "php ./vendor/phpunit/phpunit/phpunit --configuration test/phpunit.xml" - ], - "app-phpunit-badges-coverage": [ - "@putenv XDEBUG_MODE=off", - "php test/phpunit.xml.badges.php" - ], - "app-phpdoc": [ - "@putenv XDEBUG_MODE=off", - "/usr/bin/phpdoc --config /app/build/phpdoc.xml" - ], - "app-phan": [ - "@putenv XDEBUG_MODE=off", - "@putenv PHAN_DISABLE_XDEBUG_WARN=1", - "@putenv PHAN_ALLOW_XDEBUG=1", - "php ./vendor/bin/phan --disable-plugins --color -k ./build/phan.php --output-mode html -o build/tmp/phan.html --long-progress-bar; cat build/tmp/phan.html" - ], - "app-phpcpd": [ - "@putenv XDEBUG_MODE=off", - "php /usr/bin/phpcpd src" - ], - "app-pdepend": [ - "@putenv XDEBUG_MODE=off", - "php ./vendor/bin/pdepend --configuration=$PWD/build/pdepend.xml --dependency-xml=$PWD/build/tmp/pdepend-dependency-xml.xml --jdepend-chart=$PWD/build/tmp/pdepend-jdepend-chart.svg --jdepend-xml=$PWD/build/tmp/pdepend-jdepend-xml.xml --summary-xml=$PWD/build/tmp/pdepend-summary-xml.xml --overview-pyramid=$PWD/build/tmp/pdepend-overview-pyramid.svg src" - ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "require-dev": { - "ext-posix": "*", - "ext-ast": "*", - "nikic/php-parser": "^4", - "pdepend/pdepend": "^2.12", - "phan/phan": "^5.4", - "phpmd/phpmd": "^2.13", - "phpstan/phpstan": "^1.8", - "phpunit/phpunit": "^9.5", - "psalm/phar": "*", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.8", - "composer/composer": "^2" - }, - "require": { - "php": "^8.0 || ^8.1 || ^8.2", - "ext-mysqli": "*", - "ext-mysqlnd": "*", - "ext-pcntl": "*", - "psr/log": "^1", - "composer-plugin-api": "^2" - }, - "autoload": { - "psr-4": { - "sql\\": "src/sql" - } - } -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 216a222eaf2..00000000000 --- a/composer.lock +++ /dev/null @@ -1,5196 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "0ad9d68f0842fd9264d83c58ced66d80", - "packages": [ - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, - "time": "2021-05-03T11:20:27+00:00" - } - ], - "packages-dev": [ - { - "name": "composer/ca-bundle", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "b66d11b7479109ab547f9405b97205640b17d385" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/b66d11b7479109ab547f9405b97205640b17d385", - "reference": "b66d11b7479109ab547f9405b97205640b17d385", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-12-18T12:05:55+00:00" - }, - { - "name": "composer/class-map-generator", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/composer/class-map-generator.git", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", - "shasum": "" - }, - "require": { - "composer/pcre": "^2.1 || ^3.1", - "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" - }, - "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\ClassMapGenerator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Utilities to scan PHP code and generate class maps.", - "keywords": [ - "classmap" - ], - "support": { - "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-06-30T13:58:57+00:00" - }, - { - "name": "composer/composer", - "version": "2.6.6", - "source": { - "type": "git", - "url": "https://github.com/composer/composer.git", - "reference": "683557bd2466072777309d039534bb1332d0dda5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/683557bd2466072777309d039534bb1332d0dda5", - "reference": "683557bd2466072777309d039534bb1332d0dda5", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0", - "composer/class-map-generator": "^1.0", - "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.1 || ^3.1", - "composer/semver": "^3.2.5", - "composer/spdx-licenses": "^1.5.7", - "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8 || ^3", - "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.2", - "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11", - "symfony/filesystem": "^5.4 || ^6.0 || ^7", - "symfony/finder": "^5.4 || ^6.0 || ^7", - "symfony/polyfill-php73": "^1.24", - "symfony/polyfill-php80": "^1.24", - "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4 || ^6.0 || ^7" - }, - "require-dev": { - "phpstan/phpstan": "^1.9.3", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1", - "phpstan/phpstan-symfony": "^1.2.10", - "symfony/phpunit-bridge": "^6.0 || ^7" - }, - "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" - }, - "bin": [ - "bin/composer" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.6-dev" - }, - "phpstan": { - "includes": [ - "phpstan/rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Composer\\": "src/Composer/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "https://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", - "homepage": "https://getcomposer.org/", - "keywords": [ - "autoload", - "dependency", - "package" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/composer/issues", - "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.6.6" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-12-08T17:32:26+00:00" - }, - { - "name": "composer/metadata-minifier", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\MetadataMinifier\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Small utility library that handles metadata minification and expansion.", - "keywords": [ - "composer", - "compression" - ], - "support": { - "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-04-07T13:37:33+00:00" - }, - { - "name": "composer/pcre", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-10-11T07:11:09+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-08-31T09:50:34+00:00" - }, - { - "name": "composer/spdx-licenses", - "version": "1.5.8", - "source": { - "type": "git", - "url": "https://github.com/composer/spdx-licenses.git", - "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", - "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Spdx\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "SPDX licenses list and validation library.", - "keywords": [ - "license", - "spdx", - "validator" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.8" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-11-20T07:44:33+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" - }, - "require-dev": { - "composer/composer": "*", - "ext-json": "*", - "ext-zip": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0", - "yoast/phpunit-polyfills": "^1.0" - }, - "type": "composer-plugin", - "extra": { - "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" - }, - "autoload": { - "psr-4": { - "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", - "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcbf", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" - ], - "support": { - "issues": "https://github.com/PHPCSStandards/composer-installer/issues", - "source": "https://github.com/PHPCSStandards/composer-installer" - }, - "time": "2023-01-05T11:28:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" - }, - "time": "2023-09-27T20:04:15+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:15:36+00:00" - }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" - }, - "time": "2021-06-11T22:34:44+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "v5.2.13", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", - "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13" - }, - "time": "2023-09-26T02:20:38+00:00" - }, - { - "name": "microsoft/tolerant-php-parser", - "version": "v0.1.2", - "source": { - "type": "git", - "url": "https://github.com/microsoft/tolerant-php-parser.git", - "reference": "3eccfd273323aaf69513e2f1c888393f5947804b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/microsoft/tolerant-php-parser/zipball/3eccfd273323aaf69513e2f1c888393f5947804b", - "reference": "3eccfd273323aaf69513e2f1c888393f5947804b", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.15" - }, - "type": "library", - "autoload": { - "psr-4": { - "Microsoft\\PhpParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rob Lourens", - "email": "roblou@microsoft.com" - } - ], - "description": "Tolerant PHP-to-AST parser designed for IDE usage scenarios", - "support": { - "issues": "https://github.com/microsoft/tolerant-php-parser/issues", - "source": "https://github.com/microsoft/tolerant-php-parser/tree/v0.1.2" - }, - "time": "2022-10-05T17:30:19+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2023-03-08T13:26:56+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.2.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" - }, - "time": "2023-04-09T17:37:40+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.18.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" - }, - "time": "2023-12-10T21:03:43+00:00" - }, - { - "name": "pdepend/pdepend", - "version": "2.16.2", - "source": { - "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", - "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", - "shasum": "" - }, - "require": { - "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/polyfill-mbstring": "^1.19" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0|^1.2.3", - "gregwar/rst": "^1.0", - "squizlabs/php_codesniffer": "^2.0.0" - }, - "bin": [ - "src/bin/pdepend" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "PDepend\\": "src/main/php/PDepend" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Official version of pdepend to be handled with Composer", - "keywords": [ - "PHP Depend", - "PHP_Depend", - "dev", - "pdepend" - ], - "support": { - "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.16.2" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", - "type": "tidelift" - } - ], - "time": "2023-12-17T18:09:59+00:00" - }, - { - "name": "phan/phan", - "version": "5.4.3", - "source": { - "type": "git", - "url": "https://github.com/phan/phan.git", - "reference": "86a7acd99c1239b8867b49feca2398851212e7fe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phan/phan/zipball/86a7acd99c1239b8867b49feca2398851212e7fe", - "reference": "86a7acd99c1239b8867b49feca2398851212e7fe", - "shasum": "" - }, - "require": { - "composer/semver": "^1.4|^2.0|^3.0", - "composer/xdebug-handler": "^2.0|^3.0", - "ext-filter": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.4", - "microsoft/tolerant-php-parser": "0.1.2", - "netresearch/jsonmapper": "^1.6.0|^2.0|^3.0|^4.0", - "php": "^7.2.0|^8.0.0", - "sabre/event": "^5.1.3", - "symfony/console": "^3.2|^4.0|^5.0|^6.0|^7.0", - "symfony/polyfill-mbstring": "^1.11.0", - "symfony/polyfill-php80": "^1.20.0", - "tysonandre/var_representation_polyfill": "^0.0.2|^0.1.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.0" - }, - "suggest": { - "ext-ast": "Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed, 1.0.16+ is recommended.", - "ext-iconv": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8", - "ext-igbinary": "Improves performance of polyfill when ext-ast is unavailable", - "ext-mbstring": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8", - "ext-tokenizer": "Needed for fallback/polyfill parser support and file/line-based suppressions.", - "ext-var_representation": "Suggested for converting values to strings in issue messages" - }, - "bin": [ - "phan", - "phan_client", - "tocheckstyle" - ], - "type": "project", - "autoload": { - "psr-4": { - "Phan\\": "src/Phan" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tyson Andre" - }, - { - "name": "Rasmus Lerdorf" - }, - { - "name": "Andrew S. Morrison" - } - ], - "description": "A static analyzer for PHP", - "keywords": [ - "analyzer", - "php", - "static", - "static analysis" - ], - "support": { - "issues": "https://github.com/phan/phan/issues", - "source": "https://github.com/phan/phan/tree/5.4.3" - }, - "time": "2023-12-26T17:57:35+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.7.3", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" - }, - "time": "2023-08-12T11:01:26+00:00" - }, - { - "name": "phpmd/phpmd", - "version": "2.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpmd/phpmd.git", - "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", - "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", - "shasum": "" - }, - "require": { - "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", - "ext-xml": "*", - "pdepend/pdepend": "^2.16.1", - "php": ">=5.3.9" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0 || ^1.3.2", - "ext-json": "*", - "ext-simplexml": "*", - "gregwar/rst": "^1.0", - "mikey179/vfsstream": "^1.6.8", - "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" - }, - "bin": [ - "src/bin/phpmd" - ], - "type": "library", - "autoload": { - "psr-0": { - "PHPMD\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Manuel Pichler", - "email": "github@manuel-pichler.de", - "homepage": "https://github.com/manuelpichler", - "role": "Project Founder" - }, - { - "name": "Marc Würth", - "email": "ravage@bluewin.ch", - "homepage": "https://github.com/ravage84", - "role": "Project Maintainer" - }, - { - "name": "Other contributors", - "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", - "role": "Contributors" - } - ], - "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", - "homepage": "https://phpmd.org/", - "keywords": [ - "dev", - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" - ], - "support": { - "irc": "irc://irc.freenode.org/phpmd", - "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.15.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", - "type": "tidelift" - } - ], - "time": "2023-12-11T08:22:20+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "1.24.5", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5" - }, - "time": "2023-12-16T09:33:33+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.10.50", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/06a98513ac72c03e8366b5a0cb00750b487032e4", - "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" - } - ], - "time": "2023-12-13T10:59:42+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.30", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:47:57+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.15", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2023-12-01T16:55:19+00:00" - }, - { - "name": "psalm/phar", - "version": "5.18.0", - "source": { - "type": "git", - "url": "https://github.com/psalm/phar.git", - "reference": "a78b5c2e8860c3b4242c63bc0864621278705f9a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psalm/phar/zipball/a78b5c2e8860c3b4242c63bc0864621278705f9a", - "reference": "a78b5c2e8860c3b4242c63bc0864621278705f9a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "vimeo/psalm": "*" - }, - "bin": [ - "psalm.phar" - ], - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Composer-based Psalm Phar", - "support": { - "issues": "https://github.com/psalm/phar/issues", - "source": "https://github.com/psalm/phar/tree/5.18.0" - }, - "time": "2023-12-16T09:41:14+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "react/promise", - "version": "v3.1.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", - "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", - "shasum": "" - }, - "require": { - "php": ">=7.1.0" - }, - "require-dev": { - "phpstan/phpstan": "1.10.39 || 1.4.10", - "phpunit/phpunit": "^9.6 || ^7.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.1.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2023-11-16T16:21:57+00:00" - }, - { - "name": "sabre/event", - "version": "5.1.4", - "source": { - "type": "git", - "url": "https://github.com/sabre-io/event.git", - "reference": "d7da22897125d34d7eddf7977758191c06a74497" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sabre-io/event/zipball/d7da22897125d34d7eddf7977758191c06a74497", - "reference": "d7da22897125d34d7eddf7977758191c06a74497", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.17.1", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" - }, - "type": "library", - "autoload": { - "files": [ - "lib/coroutine.php", - "lib/Loop/functions.php", - "lib/Promise/functions.php" - ], - "psr-4": { - "Sabre\\Event\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - } - ], - "description": "sabre/event is a library for lightweight event-based programming", - "homepage": "http://sabre.io/event/", - "keywords": [ - "EventEmitter", - "async", - "coroutine", - "eventloop", - "events", - "hooks", - "plugin", - "promise", - "reactor", - "signal" - ], - "support": { - "forum": "https://groups.google.com/group/sabredav-discuss", - "issues": "https://github.com/sabre-io/event/issues", - "source": "https://github.com/fruux/sabre-event" - }, - "time": "2021-11-04T06:51:17+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:19:30+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-05-07T05:35:17+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T06:03:37+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-02T09:26:13+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:20:34+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "seld/jsonlint", - "version": "1.10.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "76d449a358ece77d6f1d6331c68453e657172202" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/76d449a358ece77d6f1d6331c68453e657172202", - "reference": "76d449a358ece77d6f1d6331c68453e657172202", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.10.1" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], - "time": "2023-12-18T13:03:25+00:00" - }, - { - "name": "seld/phar-utils", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\PharUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "PHAR file format utilities, for when PHP phars you up", - "keywords": [ - "phar" - ], - "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" - }, - "time": "2022-08-31T10:31:18+00:00" - }, - { - "name": "seld/signal-handler", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/signal-handler.git", - "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", - "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "require-dev": { - "phpstan/phpstan": "^1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^7.5.20 || ^8.5.23", - "psr/log": "^1 || ^2 || ^3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\Signal\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", - "keywords": [ - "posix", - "sigint", - "signal", - "sigterm", - "unix" - ], - "support": { - "issues": "https://github.com/Seldaek/signal-handler/issues", - "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2" - }, - "time": "2023-09-03T09:24:00+00:00" - }, - { - "name": "slevomat/coding-standard", - "version": "8.14.1", - "source": { - "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "fea1fd6f137cc84f9cba0ae30d549615dbc6a926" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/fea1fd6f137cc84f9cba0ae30d549615dbc6a926", - "reference": "fea1fd6f137cc84f9cba0ae30d549615dbc6a926", - "shasum": "" - }, - "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.23.1", - "squizlabs/php_codesniffer": "^3.7.1" - }, - "require-dev": { - "phing/phing": "2.17.4", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.10.37", - "phpstan/phpstan-deprecation-rules": "1.1.4", - "phpstan/phpstan-phpunit": "1.3.14", - "phpstan/phpstan-strict-rules": "1.5.1", - "phpunit/phpunit": "8.5.21|9.6.8|10.3.5" - }, - "type": "phpcodesniffer-standard", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "autoload": { - "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", - "keywords": [ - "dev", - "phpcs" - ], - "support": { - "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.14.1" - }, - "funding": [ - { - "url": "https://github.com/kukulich", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", - "type": "tidelift" - } - ], - "time": "2023-10-08T07:28:08+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.8.0", - "source": { - "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5805f7a4e4958dbb5e944ef1e6edae0a303765e7", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "Former lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "Current lead" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", - "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", - "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" - }, - "funding": [ - { - "url": "https://github.com/PHPCSStandards", - "type": "github" - }, - { - "url": "https://github.com/jrfnl", - "type": "github" - }, - { - "url": "https://opencollective.com/php_codesniffer", - "type": "open_collective" - } - ], - "time": "2023-12-08T12:32:31+00:00" - }, - { - "name": "symfony/config", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3", - "reference": "db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/filesystem": "^5.4|^6.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php81": "^1.22" - }, - "conflict": { - "symfony/finder": "<4.4" - }, - "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/messenger": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/yaml": "^5.4|^6.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/config/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-09T04:36:00+00:00" - }, - { - "name": "symfony/console", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-01T08:36:10+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v6.0.20", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "359806e1adebd1c43e18e5ea22acd14bef7fcf8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/359806e1adebd1c43e18e5ea22acd14bef7fcf8c", - "reference": "359806e1adebd1c43e18e5ea22acd14bef7fcf8c", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php81": "^1.22", - "symfony/service-contracts": "^1.1.6|^2.0|^3.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<5.4", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<5.4", - "symfony/yaml": "<5.4" - }, - "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "symfony/config": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.0.20" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-30T15:41:07+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "shasum": "" - }, - "require": { - "php": ">=8.0.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:55:41+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-20T17:44:14+00:00" - }, - { - "name": "symfony/finder", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11", - "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11", - "shasum": "" - }, - "require": { - "php": ">=8.0.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-20T17:44:14+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-28T09:04:16+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/process", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "2114fd60f26a296cc403a7939ab91478475a33d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4", - "reference": "2114fd60f26a296cc403a7939ab91478475a33d4", - "shasum": "" - }, - "require": { - "php": ">=8.0.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-01T08:36:10+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-30T19:17:58+00:00" - }, - { - "name": "symfony/string", - "version": "v6.0.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" - }, - "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.0.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-01T08:36:10+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2023-11-20T00:12:19+00:00" - }, - { - "name": "tysonandre/var_representation_polyfill", - "version": "0.1.3", - "source": { - "type": "git", - "url": "https://github.com/TysonAndre/var_representation_polyfill.git", - "reference": "e9116c2c352bb0835ca428b442dde7767c11ad32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/e9116c2c352bb0835ca428b442dde7767c11ad32", - "reference": "e9116c2c352bb0835ca428b442dde7767c11ad32", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.2.0|^8.0.0" - }, - "provide": { - "ext-var_representation": "*" - }, - "require-dev": { - "phan/phan": "^5.4.1", - "phpunit/phpunit": "^8.5.0" - }, - "suggest": { - "ext-var_representation": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "0.1.3-dev" - } - }, - "autoload": { - "files": [ - "src/var_representation.php" - ], - "psr-4": { - "VarRepresentation\\": "src/VarRepresentation" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tyson Andre" - } - ], - "description": "Polyfill for var_representation: convert a variable to a string in a way that fixes the shortcomings of var_export", - "keywords": [ - "var_export", - "var_representation" - ], - "support": { - "issues": "https://github.com/TysonAndre/var_representation_polyfill/issues", - "source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.1.3" - }, - "time": "2022-08-31T12:59:22+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": "^8.0 || ^8.1 || ^8.2", - "ext-mysqli": "*", - "ext-mysqlnd": "*", - "ext-pcntl": "*", - "composer-plugin-api": "^2" - }, - "platform-dev": { - "ext-posix": "*", - "ext-ast": "*" - }, - "plugin-api-version": "2.3.0" -} diff --git a/examples/MydbRepository/UserRepository.php b/examples/MydbRepository/UserRepository.php deleted file mode 100644 index 7d85b3aee64..00000000000 --- a/examples/MydbRepository/UserRepository.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -// @codeCoverageIgnoreStart - -namespace MydbRepository; - -use sql\MydbRepository; - -class UserRepository extends MydbRepository -{ - - public function getDatabaseIdentifier(): string - { - return 'db1'; - } - - public function findById(int $id): ?array - { - $db = $this->getDatabase(); - - return $db->select("SELECT * FROM users WHERE id = " . $db->escape($id)); - } -} -// @codeCoverageIgnoreEnd diff --git a/examples/example.php b/examples/example.php deleted file mode 100644 index 7eb87704226..00000000000 --- a/examples/example.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ -// @codeCoverageIgnoreStart - - -declare(strict_types = 1); - -use MydbRepository\UserRepository; -use sql\Mydb; -use sql\MydbCredentials; -use sql\MydbLogger; -use sql\MydbOptions; -use sql\MydbRegistry; - -include_once __DIR__ . '/../vendor/autoload.php'; -include_once __DIR__ . '/MydbRepository/UserRepository.php'; - - -$registry = new MydbRegistry(); -$mylogger = new MydbLogger(); -$sqlHost = 'mysql' === gethostbyname('mysql') ? '0.0.0.0' : gethostbyname('mysql'); - -$auth = new MydbCredentials($sqlHost, 'root', 'root', 'mydb', 3306); -$opts = new MydbOptions(); -$opts->setTransactionIsolationLevel(MydbOptions::TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED); -$mydb = new Mydb($auth, $mylogger, $opts); - -$mydb->beginTransaction(); - -$array1 = $mydb->select("SELECT 123"); -$array2 = $mydb->query("SELECT 123"); - -assert($array1 === $array2); - -$created = $mydb->command('CREATE TEMPORARY TABLE `users` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) NOT NULL, - `myenum` enum ("e1","e2") NOT NULL DEFAULT "e1", - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4'); - -assert(true === $created); - -$insertedStringId = $mydb->insert("INSERT INTO users (id, name) VALUES (10, 'user10')"); -assert('10' === $insertedStringId); - -$insertedStringId = $mydb->insertOne(['id' => 20, 'name' => 'user20'], 'users'); -assert('20' === $insertedStringId); - -$mydb->insertMany([[30, 'user30'], [40, 'user40']], ['id', 'name'], 'users'); - -assert(['10', '20', '30', '40'] === array_column($mydb->query("SELECT id, name FROM users ORDER BY id ASC"), 'id')); - -$deletedRowsCount = $mydb->delete('DELETE FROM users WHERE id = 40'); -assert(1 === $deletedRowsCount); - -assert(['10', '20', '30'] === array_column($mydb->select("SELECT id, name FROM users ORDER BY id ASC"), 'id')); - -$enum = $mydb->getEnumValues('users', 'myenum'); -assert(['e1', 'e2'] === $enum); - -$prim = $mydb->getPrimaryKeys('users'); -assert(['id'] === $prim); - -$deletedRowsCount = $mydb->deleteWhere(['id' => '30'], 'users'); -assert(1 === $deletedRowsCount); - -assert(['10', '20'] === array_column($mydb->select("SELECT id, name FROM users ORDER BY id ASC"), 'id')); - -assert(1, $mydb->updateWhere(['id' => 99], ['id' => 10], 'users')); -assert(['20', '99'] === array_column($mydb->select("SELECT id, name FROM users ORDER BY id ASC"), 'id')); - -$db10 = new Mydb($auth, $mylogger, $opts); -$db10->open(); - -$db20 = new Mydb($auth, $mylogger, $opts); -$registry['db1'] = $mydb; -$registry['db2'] = $db10; -$registry['db3'] = $db20; - -$db10->close(); -$db20->close(); - -$userRepo = new UserRepository($registry); -$user20 = $userRepo->findById(20); -assert('user20' === $user20[0]['name']); - -$mydb->rollbackTransaction(); -echo 'OK' . PHP_EOL; -exit(0); -// @codeCoverageIgnoreEnd diff --git a/mysql/InnoDbMemoryDisk.png b/mysql/InnoDbMemoryDisk.png new file mode 100644 index 00000000000..68ac86c5065 Binary files /dev/null and b/mysql/InnoDbMemoryDisk.png differ diff --git a/mysql/MySQL_PERFORMANCE.md b/mysql/MySQL_PERFORMANCE.md new file mode 100644 index 00000000000..eb31ea8a46e --- /dev/null +++ b/mysql/MySQL_PERFORMANCE.md @@ -0,0 +1,69 @@ + +### Solution to 'MySQL server has gone away' + +[Solutions for the 2006 MySQL error](https://haydenjames.io/mysql-server-has-gone-away-error-solutions/) + + 1. Check values of `wait_timeout` MySQL setting along with `net_read_timeout`, `net_write_timeout`, `interactive_timeout` and `connect_timeout` + 2. Verify PHP MySQL configuration options on php.ini: `mysql.connect_timeout` and `mysql.allow_persistent` + 3. To allow slow/long-running queries, increase the `default_socket_timeout` and `max_input_time`. They'll be applied + if no `mysqlnd` timeouts are set per (`mysqlnd.net_read_timeout`) + 4. If expect large results, check value of `max_allowed_package` to receive a packet that's too large + 5. As last, increasing `innodb_log_file_size` MySQL variable might help + +### Finetuning MySQL + + - `explain extended` and `show warnings` + - `show index from table` + - `show table status where Name = 'table'` + - `show engine innodb status` + - Rules of Thumb for MySQL [Rick's RoTs](http://mysql.rjweb.org/doc.php/ricksrots#partitioning) + - MySQL process list `SELECT ID,USER,HOST,DB,COMMAND,TIME,STATE,LEFT(REPLACE(REPLACE(INFO, '\n', ' '), ' ', ' '), 80) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE != '' ORDER BY TIME DESC LIMIT 50` + - SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_%' ([Values are in blocks of 16 kilobytes](https://www.fromdual.com/de/innodb-variables-and-status-explained)) + +#### MySQL buffer `innodb_buffer_pool_size` in Gb +`SELECT CONCAT(CEILING(RIBPS/POWER(1024,pw)), SUBSTR(' KMGT',pw+1,1) Recommended_InnoDB_Buffer_Pool_Size FROM + ( + SELECT RIBPS,FLOOR(LOG(RIBPS)/LOG(1024)) pw + FROM (SELECT SUM(data_length+index_length)*1.1*growth RIBPS + FROM information_schema.tables AAA, + (SELECT 1.25 growth) BBB + WHERE ENGINE='InnoDB') AA + ) A;` +#### MySQL table size +`SELECT table_schema, + table_name, + round(((data_length + index_length) / 1024 / 1024), 2) 'SizeMB' + FROM information_schema.TABLES + ORDER BY (data_length + index_length) DESC LIMIT 10` + +#### MySQL table partition sizes +`SELECT table_schema as 'Database', + table_name AS 'Table', + PARTITION_NAME, + SUBPARTITION_NAME, + round(((data_length + index_length) / 1024 / 1024), 2) 'SizeMB' + FROM information_schema.PARTITIONS + ORDER BY (data_length + index_length) DESC, TABLE_NAME LIMIT 10` +#### MySQL Optimizer +`SET SESSION optimizer_trace="enabled=on"; + SELECT ...; + SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; + SET SESSION optimizer_trace="enabled=off";` + +#### MySQL Profiling +`SET SESSION profiling=1; + SELECT ...; + SET SESSION profiling=0; + SHOW PROFILE; + ` diff --git a/mysql/index.html b/mysql/index.html new file mode 100644 index 00000000000..bbd064296dd --- /dev/null +++ b/mysql/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
+

Index of /mysql

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

InnoDbMemoryDisk.png

InnoDbMemoryDisk.png +
115 kB10-Aug-2025 23:25
+

MySQL_PERFORMANCE.md

MySQL_PERFORMANCE.md +
2 kB10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/index.html b/php/index.html new file mode 100644 index 00000000000..2b9f28dc749 --- /dev/null +++ b/php/index.html @@ -0,0 +1,110 @@ + + + + + Index of / + + + + +
+

Index of /php

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

pdepend

pdepend +
-10-Aug-2025 23:25
+

phan

phan +
-10-Aug-2025 23:25
+

phpcs

phpcs +
-10-Aug-2025 23:25
+

phpdoc

phpdoc +
-10-Aug-2025 23:25
+

phpmd

phpmd +
-10-Aug-2025 23:25
+

phpstan

phpstan +
-10-Aug-2025 23:25
+

phpunit

phpunit +
-10-Aug-2025 23:25
+

psalm

psalm +
-10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/pdepend/index.html b/php/pdepend/index.html new file mode 100644 index 00000000000..cd87bdb7871 --- /dev/null +++ b/php/pdepend/index.html @@ -0,0 +1,86 @@ + + + + + Index of / + + + + +
+

Index of /php/pdepend

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

pdepend-dependency-xml.xml

pdepend-dependency-xml.xml +
25 kB10-Aug-2025 23:25
+

pdepend-jdepend-chart.svg

pdepend-jdepend-chart.svg +
21 kB10-Aug-2025 23:25
+

pdepend-jdepend-xml.xml

pdepend-jdepend-xml.xml +
10 kB10-Aug-2025 23:25
+

pdepend-overview-pyramid.svg

pdepend-overview-pyramid.svg +
25 kB10-Aug-2025 23:25
+

pdepend-summary-xml.xml

pdepend-summary-xml.xml +
74 kB10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/pdepend/pdepend-dependency-xml.xml b/php/pdepend/pdepend-dependency-xml.xml new file mode 100644 index 00000000000..6a0c871e3c5 --- /dev/null +++ b/php/pdepend/pdepend-dependency-xml.xml @@ -0,0 +1,657 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/pdepend/pdepend-jdepend-chart.svg b/php/pdepend/pdepend-jdepend-chart.svg new file mode 100644 index 00000000000..f8e37f95b3d --- /dev/null +++ b/php/pdepend/pdepend-jdepend-chart.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1 + 0.2 + 0.6 + 0.5 + 0.4 + 0.3 + 0.8 + 0.7 + 1.0 + 0.9 + 0.0 + 0.1 + 0.2 + 0.6 + 0.5 + 0.4 + 0.3 + 0.8 + 0.7 + 1.0 + 0.9 + 0.0 + Abstraction + Instability + Generated by PDepend + + + + + + MydbListenerMydbMysqliMydbEventMydbInterfaceMydbException + diff --git a/php/pdepend/pdepend-jdepend-xml.xml b/php/pdepend/pdepend-jdepend-xml.xml new file mode 100644 index 00000000000..305ce7f5644 --- /dev/null +++ b/php/pdepend/pdepend-jdepend-xml.xml @@ -0,0 +1,229 @@ + + + + + + 24 + 10 + 14 + 3 + 7 + 0.58333333333333 + 0.7 + 0.28333333333333 + + + Mydb + MydbCredentials + MydbEnvironment + MydbException + MydbExpression + MydbLogger + MydbMysqli + MydbOptions + MydbQueryBuilder + MydbRegistry + + + MydbCredentialsInterface + MydbEnvironmentInterface + MydbEvent + MydbEventInterface + MydbEventMetadataInterface + MydbExpressionInterface + MydbInterface + MydbListener + MydbListenerInterface + MydbMysqliInterface + MydbOptionsInterface + MydbQueryBuilderInterface + MydbRepository + MydbRepositoryInterface + + + + Psr\Log + sql\MydbEvent + sql\MydbException + sql\MydbInterface + sql\MydbListener + sql\MydbMysqli + + + sql\MydbEvent + sql\MydbException + sql\MydbListener + + + + + 5 + 5 + 0 + 2 + 1 + 0 + 0.33333333333333 + 0.66666666666667 + + + InternalConnectionBegin + InternalConnectionEnd + InternalEvent + InternalQueryBegin + InternalQueryEnd + + + + sql + + + sql + sql\MydbListener + + + + + 22 + 22 + 0 + 1 + 2 + 0 + 0.66666666666667 + 0.33333333333333 + + + ConnectDefaultsException + ConnectException + DeleteException + DisconnectException + EnvironmentException + EventException + InternalException + LoggerException + OptionException + QueryBuilderEscapeException + QueryBuilderException + RegistryException + ServerGoneException + TerminationSignalException + TransactionAutocommitException + TransactionBeginException + TransactionBeginReadonlyException + TransactionBeginReadwriteException + TransactionCommitException + TransactionIsolationException + TransactionRollbackException + UpdateException + + + + + sql + + + sql + + + + + 7 + 0 + 7 + 1 + 0 + 1 + 0 + 0 + + + + AdministrationStatementsInterface + CommandInterface + DataManipulationStatementsInterface + EncoderInterface + QueryInterface + RemoteResourceInterface + TransactionInterface + + + + sql + + + + + 1 + 1 + 0 + 1 + 3 + 0 + 0.75 + 0.25 + + + InternalListener + + + + Psr\Log + sql + sql\MydbEvent + + + sql + + + + + 3 + 1 + 2 + 1 + 1 + 0.66666666666667 + 0.5 + 0.16666666666667 + + + MydbMysqliResult + + + MydbMysqliEscapeStringInterface + MydbMysqliResultInterface + + + + + + sql + + + + + + sql + sql\MydbEvent + sql + + + sql\MydbEvent + sql + sql\MydbEvent + + + sql\MydbException + sql + sql\MydbEvent + sql + + + sql\MydbListener + sql + sql\MydbEvent + sql + + + diff --git a/php/pdepend/pdepend-overview-pyramid.svg b/php/pdepend/pdepend-overview-pyramid.svg new file mode 100644 index 00000000000..78469628e64 --- /dev/null +++ b/php/pdepend/pdepend-overview-pyramid.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ANDC + AHH + NOP + NOC + NOM + LOC + CYCLO + NOM + CALLS + FANOUT + 71 + 291 + 417 + 2064 + 286 + 6 + 42 + 0.651 + 0.5 + 7 + 6.81 + 7.217 + 0.202 + 0.244 + 1.017 + Generated by PDepend + + Low + + Average + + High + + diff --git a/php/pdepend/pdepend-summary-xml.xml b/php/pdepend/pdepend-summary-xml.xml new file mode 100644 index 00000000000..61018c510d5 --- /dev/null +++ b/php/pdepend/pdepend-summary-xml.xml @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/phan/index.html b/php/phan/index.html new file mode 100644 index 00000000000..fe7cd36a304 --- /dev/null +++ b/php/phan/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
+

Index of /php/phan

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

phan.html

phan.html +
0 kB10-Aug-2025 23:25
+

phan.txt

phan.txt +
13 kB10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/phan/phan.html b/php/phan/phan.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/php/phan/phan.txt b/php/phan/phan.txt new file mode 100644 index 00000000000..4f5aa3e9e2b --- /dev/null +++ b/php/phan/phan.txt @@ -0,0 +1,83 @@ +> @putenv XDEBUG_MODE=off +> @putenv PHAN_DISABLE_XDEBUG_WARN=1 +> @putenv PHAN_ALLOW_XDEBUG=1 +> php ./vendor/bin/phan --disable-plugins --color -k ./build/phan.php --output-mode html -o build/tmp/phan.html --long-progress-bar; cat build/tmp/phan.html +Parsing files... +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 54 / 3631 ( 2%) 49MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 108 / 3631 ( 4%) 81MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 162 / 3631 ( 6%) 106MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 216 / 3631 ( 6%) 106MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 270 / 3631 ( 9%) 133MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 324 / 3631 ( 9%) 133MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 378 / 3631 ( 12%) 157MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 432 / 3631 ( 12%) 157MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 486 / 3631 ( 18%) 179MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 540 / 3631 ( 18%) 179MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 594 / 3631 ( 18%) 179MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 648 / 3631 ( 18%) 179MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 702 / 3631 ( 24%) 214MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 756 / 3631 ( 24%) 214MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 810 / 3631 ( 24%) 214MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 864 / 3631 ( 24%) 214MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 918 / 3631 ( 28%) 234MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 972 / 3631 ( 28%) 234MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1026 / 3631 ( 28%) 234MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1080 / 3631 ( 31%) 254MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1134 / 3631 ( 33%) 290MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1188 / 3631 ( 33%) 290MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1242 / 3631 ( 34%) 320MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1296 / 3631 ( 36%) 353MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1350 / 3631 ( 37%) 376MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1404 / 3631 ( 40%) 408MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1458 / 3631 ( 40%) 408MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1512 / 3631 ( 43%) 429MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1566 / 3631 ( 43%) 429MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1620 / 3631 ( 49%) 451MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1674 / 3631 ( 49%) 451MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1728 / 3631 ( 49%) 451MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1782 / 3631 ( 49%) 451MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1836 / 3631 ( 55%) 468MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1890 / 3631 ( 55%) 468MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1944 / 3631 ( 55%) 468MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 1998 / 3631 ( 55%) 468MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2052 / 3631 ( 58%) 494MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2106 / 3631 ( 58%) 494MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2160 / 3631 ( 64%) 524MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2214 / 3631 ( 64%) 524MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2268 / 3631 ( 64%) 524MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2322 / 3631 ( 64%) 524MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2376 / 3631 ( 69%) 547MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2430 / 3631 ( 69%) 547MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2484 / 3631 ( 69%) 547MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2538 / 3631 ( 73%) 574MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2592 / 3631 ( 73%) 574MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2646 / 3631 ( 73%) 574MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2700 / 3631 ( 77%) 601MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2754 / 3631 ( 77%) 601MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2808 / 3631 ( 77%) 601MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2862 / 3631 ( 80%) 634MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2916 / 3631 ( 80%) 634MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 2970 / 3631 ( 84%) 670MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3024 / 3631 ( 84%) 670MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3078 / 3631 ( 87%) 701MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3132 / 3631 ( 87%) 701MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3186 / 3631 ( 92%) 726MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3240 / 3631 ( 92%) 726MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3294 / 3631 ( 92%) 726MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3348 / 3631 ( 92%) 726MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3402 / 3631 ( 96%) 756MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3456 / 3631 ( 96%) 756MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3510 / 3631 ( 96%) 756MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3564 / 3631 (100%) 779MB +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 3618 / 3631 (100%) 779MB +░░░░░░░░░░░░░ 3631 / 3631 (100%) 779MB +Analyzing classes... +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 900MB +Analyzing functions... +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 900MB +Analyzing methods... +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 921MB +Analyzing files... +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 54 / 62 ( 95%) 924MB +░░░░░░░░ 62 / 62 (100%) 924MB + diff --git a/php/phpcs/index.html b/php/phpcs/index.html new file mode 100644 index 00000000000..833a2b4984f --- /dev/null +++ b/php/phpcs/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
+

Index of /php/phpcs

+ + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

phpcs.txt

phpcs.txt +
0 kB10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/phpcs/phpcs.txt b/php/phpcs/phpcs.txt new file mode 100644 index 00000000000..bc3ef4ffaef --- /dev/null +++ b/php/phpcs/phpcs.txt @@ -0,0 +1,4 @@ +File,Line,Column,Type,Message,Source,Severity,Fixable +File,Line,Column,Type,Message,Source,Severity,Fixable +File,Line,Column,Type,Message,Source,Severity,Fixable +File,Line,Column,Type,Message,Source,Severity,Fixable diff --git a/php/phpdoc/classes/index.html b/php/phpdoc/classes/index.html new file mode 100644 index 00000000000..bc573a0f478 --- /dev/null +++ b/php/phpdoc/classes/index.html @@ -0,0 +1,582 @@ + + + + + Index of / + + + + +
+

Index of /php/phpdoc/classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Filename + + Size + + Last Modified +
+

..

.. +
-10-Aug-2025 23:25
+

sql-Mydb.html

sql-Mydb.html +
152 kB10-Aug-2025 23:25
+

sql-MydbCredentials.html

sql-MydbCredentials.html +
55 kB10-Aug-2025 23:25
+

sql-MydbCredentialsInterface.html

sql-MydbCredentialsInterface.html +
28 kB10-Aug-2025 23:25
+

sql-MydbEnvironment.html

sql-MydbEnvironment.html +
68 kB10-Aug-2025 23:25
+

sql-MydbEnvironmentInterface.html

sql-MydbEnvironmentInterface.html +
44 kB10-Aug-2025 23:25
+

sql-MydbEvent-ExampleEvent.html

sql-MydbEvent-ExampleEvent.html +
14 kB10-Aug-2025 23:25
+

sql-MydbEvent-ExampleListener.html

sql-MydbEvent-ExampleListener.html +
16 kB10-Aug-2025 23:25
+

sql-MydbEvent-Internal.html

sql-MydbEvent-Internal.html +
21 kB10-Aug-2025 23:25
+

sql-MydbEvent-InternalConnectionBegin.html

sql-MydbEvent-InternalConnectionBegin.html +
35 kB10-Aug-2025 23:25
+

sql-MydbEvent-InternalConnectionEnd.html

sql-MydbEvent-InternalConnectionEnd.html +
36 kB10-Aug-2025 23:25
+

sql-MydbEvent-InternalEvent.html

sql-MydbEvent-InternalEvent.html +
32 kB10-Aug-2025 23:25
+

sql-MydbEvent-InternalQueryBegin.html

sql-MydbEvent-InternalQueryBegin.html +
35 kB10-Aug-2025 23:25
+

sql-MydbEvent-InternalQueryEnd.html

sql-MydbEvent-InternalQueryEnd.html +
35 kB10-Aug-2025 23:25
+

sql-MydbEvent.html

sql-MydbEvent.html +
23 kB10-Aug-2025 23:25
+

sql-MydbEventInterface.html

sql-MydbEventInterface.html +
15 kB10-Aug-2025 23:25
+

sql-MydbEventMetadataInterface.html

sql-MydbEventMetadataInterface.html +
18 kB10-Aug-2025 23:25
+

sql-MydbException-AsyncException.html

sql-MydbException-AsyncException.html +
12 kB10-Aug-2025 23:25
+

sql-MydbException-ConnectDefaultsException.html

sql-MydbException-ConnectDefaultsException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-ConnectException.html

sql-MydbException-ConnectException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-DeleteException.html

sql-MydbException-DeleteException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-DisconnectException.html

sql-MydbException-DisconnectException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-EnvironmentException.html

sql-MydbException-EnvironmentException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-EventException.html

sql-MydbException-EventException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-InternalException.html

sql-MydbException-InternalException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-LoggerException.html

sql-MydbException-LoggerException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-OptionException.html

sql-MydbException-OptionException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-QueryBuilderEscapeException.html

sql-MydbException-QueryBuilderEscapeException.html +
23 kB10-Aug-2025 23:25
+

sql-MydbException-QueryBuilderException.html

sql-MydbException-QueryBuilderException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-RegistryException.html

sql-MydbException-RegistryException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-ServerGoneException.html

sql-MydbException-ServerGoneException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TerminationSignalException.html

sql-MydbException-TerminationSignalException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionAutocommitException.html

sql-MydbException-TransactionAutocommitException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionBeginException.html

sql-MydbException-TransactionBeginException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionBeginReadonlyException.html

sql-MydbException-TransactionBeginReadonlyException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionBeginReadwriteException.html

sql-MydbException-TransactionBeginReadwriteException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionCommitException.html

sql-MydbException-TransactionCommitException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionIsolationException.html

sql-MydbException-TransactionIsolationException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-TransactionRollbackException.html

sql-MydbException-TransactionRollbackException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException-UpdateException.html

sql-MydbException-UpdateException.html +
15 kB10-Aug-2025 23:25
+

sql-MydbException.html

sql-MydbException.html +
14 kB10-Aug-2025 23:25
+

sql-MydbExpression.html

sql-MydbExpression.html +
22 kB10-Aug-2025 23:25
+

sql-MydbExpressionInterface.html

sql-MydbExpressionInterface.html +
17 kB10-Aug-2025 23:25
+

sql-MydbInterface-AdministrationStatementsInterface.html

sql-MydbInterface-AdministrationStatementsInterface.html +
23 kB10-Aug-2025 23:25
+

sql-MydbInterface-AsyncInterface.html

sql-MydbInterface-AsyncInterface.html +
15 kB10-Aug-2025 23:25
+

sql-MydbInterface-CommandInterface.html

sql-MydbInterface-CommandInterface.html +
19 kB10-Aug-2025 23:25
+

sql-MydbInterface-DataManipulationStatementsInterface.html

sql-MydbInterface-DataManipulationStatementsInterface.html +
57 kB10-Aug-2025 23:25
+

sql-MydbInterface-EncoderInterface.html

sql-MydbInterface-EncoderInterface.html +
20 kB10-Aug-2025 23:25
+

sql-MydbInterface-QueryInterface.html

sql-MydbInterface-QueryInterface.html +
19 kB10-Aug-2025 23:25
+

sql-MydbInterface-RemoteResourceInterface.html

sql-MydbInterface-RemoteResourceInterface.html +
20 kB10-Aug-2025 23:25
+

sql-MydbInterface-TransactionInterface.html

sql-MydbInterface-TransactionInterface.html +
21 kB10-Aug-2025 23:25
+

sql-MydbInterface.html

sql-MydbInterface.html +
77 kB10-Aug-2025 23:25
+

sql-MydbListener-InternalListener.html

sql-MydbListener-InternalListener.html +
24 kB10-Aug-2025 23:25
+

sql-MydbListener.html

sql-MydbListener.html +
19 kB10-Aug-2025 23:25
+

sql-MydbListenerInterface.html

sql-MydbListenerInterface.html +
16 kB10-Aug-2025 23:25
+

sql-MydbLogger.html

sql-MydbLogger.html +
85 kB10-Aug-2025 23:25
+

sql-MydbMysqli-MydbMysqliEscapeStringInterface.html

sql-MydbMysqli-MydbMysqliEscapeStringInterface.html +
18 kB10-Aug-2025 23:25
+

sql-MydbMysqli-MydbMysqliResult.html

sql-MydbMysqli-MydbMysqliResult.html +
47 kB10-Aug-2025 23:25
+

sql-MydbMysqli-MydbMysqliResultInterface.html

sql-MydbMysqli-MydbMysqliResultInterface.html +
34 kB10-Aug-2025 23:25
+

sql-MydbMysqli.html

sql-MydbMysqli.html +
141 kB10-Aug-2025 23:25
+

sql-MydbMysqliInterface.html

sql-MydbMysqliInterface.html +
79 kB10-Aug-2025 23:25
+

sql-MydbOptions.html

sql-MydbOptions.html +
122 kB10-Aug-2025 23:25
+

sql-MydbOptionsInterface.html

sql-MydbOptionsInterface.html +
84 kB10-Aug-2025 23:25
+

sql-MydbQueryBuilder.html

sql-MydbQueryBuilder.html +
69 kB10-Aug-2025 23:25
+

sql-MydbQueryBuilderInterface.html

sql-MydbQueryBuilderInterface.html +
59 kB10-Aug-2025 23:25
+

sql-MydbRegistry.html

sql-MydbRegistry.html +
61 kB10-Aug-2025 23:25
+

sql-MydbRepository.html

sql-MydbRepository.html +
23 kB10-Aug-2025 23:25
+

sql-MydbRepositoryInterface.html

sql-MydbRepositoryInterface.html +
15 kB10-Aug-2025 23:25
+ + generated by apindex + + +
+ + diff --git a/php/phpdoc/classes/sql-Mydb.html b/php/phpdoc/classes/sql-Mydb.html new file mode 100644 index 00000000000..00a5f892735 --- /dev/null +++ b/php/phpdoc/classes/sql-Mydb.html @@ -0,0 +1,2882 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
+

phpDocumentor

+ + + + + +
+ +
+
+ + + + +
+
+ + +
+

+ Mydb + + +
+ in package + +
+ + + implements + MydbInterface, RemoteResourceInterface + +

+ +
+ + +
+ + + + + + +
+ Tags + + +
+
+
+ author +
+
+ +

Sergei Shilko contact@sshilko.com

+
+ +
+
+ license +
+
+ +

https://opensource.org/licenses/mit-license.php MIT

+
+ +
+
+ see +
+
+ https://github.com/sshilko/php-sql-mydb + + +
+
+ SuppressWarnings +
+
+ +

(PHPMD.CouplingBetweenObjects)

+
+ +
+
+ + + +

+ Table of Contents + + +

+ + + +

+ Interfaces + + +

+
+
MydbInterface
RemoteResourceInterface
+ + + + + + +

+ Properties + + +

+
+
+ $credentials + +  : MydbCredentialsInterface +
+ +
+ $environment + +  : MydbEnvironmentInterface +
+ +
+ $eventListener + +  : MydbListenerInterface +
+ +
+ $logger + +  : LoggerInterface +
+ +
+ $mysqli + +  : MydbMysqliInterface +
+ +
+ $options + +  : MydbOptionsInterface +
+ +
+ $queryBuilder + +  : MydbQueryBuilderInterface +
+ +
+ $terminating + +  : bool +
+ +
+ +

+ Methods + + +

+
+
+ __construct() + +  : mixed +
+ +
+ __destruct() + +  : mixed +
+
A destructor may be called as soon as there are no references to an object.
+ +
+ beginTransaction() + +  : void +
+ +
+ close() + +  : void +
+
Cleanup remote server connection +will NOT close persistent connections
+ +
+ command() + +  : bool +
+ +
+ commitTransaction() + +  : void +
+ +
+ delete() + +  : int|null +
+ +
+ deleteWhere() + +  : int|null +
+ +
+ escape() + +  : string +
+ +
+ getEnumValues() + +  : array<string|int, string> +
+ +
+ getPrimaryKeys() + +  : array<string|int, string>|null +
+ +
+ insert() + +  : string|null +
+ +
+ insertMany() + +  : void +
+ +
+ insertOne() + +  : string|null +
+ +
+ open() + +  : bool +
+
Open connection to remote server
+ +
+ query() + +  : array<string|int, mixed>|null +
+
Execute raw SQL query and return results
+ +
+ replace() + +  : string|null +
+ +
+ replaceOne() + +  : string|null +
+ +
+ rollbackTransaction() + +  : void +
+ +
+ select() + +  : array<string|int, mixed>|null +
+ +
+ update() + +  : int|null +
+ +
+ updateWhere() + +  : int|null +
+ +
+ updateWhereMany() + +  : void +
+ +
+ connect() + +  : bool +
+ +
+ onError() + +  : void +
+ +
+ onWarning() + +  : void +
+ +
+ readServerResponse() + +  : MydbMysqliResultInterface|null +
+ +
+ sendClientRequest() + +  : bool +
+ +
+ + + + + + + +
+

+ Properties + + +

+ + + +
+

+ $logger + + + + +

+ + + + + protected + LoggerInterface + $logger + + + + + + +
+ + + +
+

+ $terminating + + + + +

+ + + + + protected + bool + $terminating + = false + + + + + +
+
+ +
+

+ Methods + + +

+
+

+ __construct() + + +

+ + + + + public + __construct(MydbCredentialsInterface $credentials, LoggerInterface $logger[, MydbOptionsInterface|null $options = null ][, MydbMysqliInterface|null $mysqli = null ][, MydbEnvironmentInterface|null $environment = null ][, MydbQueryBuilderInterface|null $queryBuilder = null ][, MydbListenerInterface|null $eventListener = null ]) : mixed + +
+
+ +
Parameters
+
+
+ $credentials + : MydbCredentialsInterface +
+
+ +
+
+ $logger + : LoggerInterface +
+
+ +
+
+ $options + : MydbOptionsInterface|null + = null
+
+ +
+
+ $mysqli + : MydbMysqliInterface|null + = null
+
+ +
+
+ $environment + : MydbEnvironmentInterface|null + = null
+
+ +
+
+ $queryBuilder + : MydbQueryBuilderInterface|null + = null
+
+ +
+
+ $eventListener + : MydbListenerInterface|null + = null
+
+ +
+
+ + + + +
+ +
+

+ beginTransaction() + + +

+ + + + + public + beginTransaction() : void + +
+
+ + + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ close() + + +

+ + +

Cleanup remote server connection +will NOT close persistent connections

+ + + public + close() : void + +
+
+ + + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ command() + + +

+ + + + + public + command(string $query) : bool + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ phpcs:disable +
+
+ +

SlevomatCodingStandard.Complexity.Cognitive

+
+ +
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ bool +
+ +
+
+

+ commitTransaction() + + +

+ + + + + public + commitTransaction() : void + +
+
+ + + +
+ Tags + + +
+
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ delete() + + +

+ + + + + public + delete(string $query) : int|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ int|null +
+ +
+
+

+ deleteWhere() + + +

+ + + + + public + deleteWhere(array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
+
+ +
Parameters
+
+
+ $whereFields + : array<string|int, mixed> +
+
+ +
+
+ $table + : string +
+
+ +
+
+ $whereNotFields + : array<string|int, mixed> + = []
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ int|null +
+ +
+
+

+ escape() + + +

+ + + + + public + escape(float|int|string|MydbExpressionInterface|null $unescaped[, string $quote = "'" ]) : string + +
+
+ +
Parameters
+
+
+ $unescaped + : float|int|string|MydbExpressionInterface|null +
+
+ +
+
+ $quote + : string + = "'"
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ SuppressWarnings +
+
+ +

(PHPMD.NPathComplexity)

+
+ +
+
+ todo +
+
+ +

reduce NPathComplexity

+
+ +
+
+ +
+
Return values
+ string +
+ +
+
+

+ getEnumValues() + + +

+ + + + + public + getEnumValues(string $table, string $column) : array<string|int, string> + +
+
+ +
Parameters
+
+
+ $table + : string +
+
+ +
+
+ $column + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ psalm-return +
+
+ +

list

+
+ +
+
+ +
+
Return values
+ array<string|int, string> +
+ +
+
+

+ getPrimaryKeys() + + +

+ + + + + public + getPrimaryKeys(string $table) : array<string|int, string>|null + +
+
+ +
Parameters
+
+
+ $table + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ throws +
+
+ ConnectException + + +
+
+ +
+
Return values
+ array<string|int, string>|null +
+ +
+
+

+ insert() + + +

+ + + + + public + insert(string $query) : string|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ string|null +
+ +
+
+

+ insertMany() + + +

+ + + + + public + insertMany(array<string|int, mixed> $data, array<string|int, string> $cols, string $table[, bool $ignore = false ][, string $onDuplicateSql = '' ]) : void + +
+
+ +
Parameters
+
+
+ $data + : array<string|int, mixed> +
+
+ +
+
+ $cols + : array<string|int, string> +
+
+ +
+
+ $table + : string +
+
+ +
+
+ $ignore + : bool + = false
+
+ +
+
+ $onDuplicateSql + : string + = ''
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ psalm-param +
+
+ +

array<array-key, array<array-key, (float|int|string|\sql\MydbExpressionInterface|null)>> $data

+
+ +
+
+ + +
+
+

+ insertOne() + + +

+ + + + + public + insertOne(array<string, float|int|MydbExpressionInterface|string|null> $data, string $table) : string|null + +
+
+ +
Parameters
+
+
+ $data + : array<string, float|int|MydbExpressionInterface|string|null> +
+
+ +
+
+ $table + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ string|null +
+ +
+
+

+ open() + + +

+ + +

Open connection to remote server

+ + + public + open([int $retry = 0 ]) : bool + +
+
+ +
Parameters
+
+
+ $retry + : int + = 0
+
+

retry failed connection attempts

+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ bool +
+ +
+
+

+ query() + + +

+ + +

Execute raw SQL query and return results

+ + + public + query(string $query) : array<string|int, mixed>|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ phpcs:disable +
+
+ +

SlevomatCodingStandard.Complexity.Cognitive

+
+ +
+
+ phpcs:disable +
+
+ +

SlevomatCodingStandard.TypeHints.ReturnTypeHint

+
+ +
+
+ psalm-return +
+
+ +

array<array-key, array<array-key, (float|int|string|null)>>|null

+
+ +
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ array<string|int, mixed>|null +
+ +
+
+

+ replace() + + +

+ + + + + public + replace(string $query) : string|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ ConnectException + + +
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ string|null +
+ +
+
+

+ replaceOne() + + +

+ + + + + public + replaceOne(array<string, float|int|MydbExpressionInterface|string|null> $data, string $table) : string|null + +
+
+ +
Parameters
+
+
+ $data + : array<string, float|int|MydbExpressionInterface|string|null> +
+
+ +
+
+ $table + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ string|null +
+ +
+
+

+ rollbackTransaction() + + +

+ + + + + public + rollbackTransaction() : void + +
+
+ + + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ select() + + +

+ + + + + public + select(string $query) : array<string|int, mixed>|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ phpcs:disable +
+
+ +

SlevomatCodingStandard.TypeHints.ReturnTypeHint

+
+ +
+
+ throws +
+
+ MydbException + + +
+
+ throws +
+
+ ConnectException + + +
+
+ +
+
Return values
+ array<string|int, mixed>|null +
+ +
+
+

+ update() + + +

+ + + + + public + update(string $query) : int|null + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ int|null +
+ +
+
+

+ updateWhere() + + +

+ + + + + public + updateWhere(array<string, float|int|string|MydbExpressionInterface|null> $update, array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
+
+ +
Parameters
+
+
+ $update + : array<string, float|int|string|MydbExpressionInterface|null> +
+
+ +
+
+ $whereFields + : array<string|int, mixed> +
+
+ +
+
+ $table + : string +
+
+ +
+
+ $whereNotFields + : array<string|int, mixed> + = []
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ +
+
Return values
+ int|null +
+ +
+
+

+ updateWhereMany() + + +

+ + + + + public + updateWhereMany(array<string|int, mixed> $columnSetWhere, array<string|int, mixed> $where, string $table) : void + +
+
+ +
Parameters
+
+
+ $columnSetWhere + : array<string|int, mixed> +
+
+

['col1' => [ ['current1', 'new1'], ['current2', 'new2']]

+
+ +
+
+ $where + : array<string|int, mixed> +
+
+

['col2' => 'value2', 'col3' => ['v3', 'v4']]

+
+ +
+
+ $table + : string +
+
+

'mytable'

+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ connect() + + +

+ + + + + protected + connect([int $retry = 0 ]) : bool + +
+
+ +
Parameters
+
+
+ $retry + : int + = 0
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ DisconnectException + + +
+
+ throws +
+
+ TransactionAutocommitException + + +
+
+ throws +
+
+ EnvironmentException + + +
+
+ throws +
+
+ EventException + + +
+
+ throws +
+
+ MydbException + + +
+
+ SuppressWarnings +
+
+ +

(PHPMD.NPathComplexity)

+
+ +
+
+ todo +
+
+ +

reduce NPathComplexity

+
+ +
+
+ +
+
Return values
+ bool +
+ +
+
+

+ onError() + + +

+ + + + + protected + onError(MydbException $exception[, string|null $sql = null ]) : void + +
+
+ +
Parameters
+
+
+ $exception + : MydbException +
+
+ +
+
+ $sql + : string|null + = null
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ MydbException + + +
+
+ + +
+
+

+ onWarning() + + +

+ + + + + protected + onWarning(string $warningMessage[, string|null $sql = null ]) : void + +
+
+ +
Parameters
+
+
+ $warningMessage + : string +
+
+ +
+
+ $sql + : string|null + = null
+
+ +
+
+ + + + +
+ +
+

+ sendClientRequest() + + +

+ + + + + protected + sendClientRequest(string $query) : bool + +
+
+ +
Parameters
+
+
+ $query + : string +
+
+ +
+
+ + +
+ Tags + + +
+
+
+ throws +
+
+ EnvironmentException + + +
+
+ throws +
+
+ TerminationSignalException + + +
+
+ throws +
+
+ EventException + + +
+
+ +
+
Return values
+ bool +
+ +
+
+ +
+
+
+
+

+        
+ +
+
+ + + +
+
+
+ +
+ On this page + + +
+ +
+
+
+
+
+

Search results

+ +
+
+
    +
    +
    +
    +
    + + +
    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbCredentials.html b/php/phpdoc/classes/sql-MydbCredentials.html new file mode 100644 index 00000000000..32a08594a98 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbCredentials.html @@ -0,0 +1,1196 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
    +

    phpDocumentor

    + + + + + +
    + +
    +
    + + + + +
    +
    + + +
    +

    + MydbCredentials + + +
    + in package + +
    + + + implements + MydbCredentialsInterface + +

    + +
    + + +
    + + + + + + +
    + Tags + + +
    +
    +
    + author +
    +
    + +

    Sergei Shilko contact@sshilko.com

    +
    + +
    +
    + license +
    +
    + +

    https://opensource.org/licenses/mit-license.php MIT

    +
    + +
    +
    + see +
    +
    + https://github.com/sshilko/php-sql-mydb + + +
    +
    + + + +

    + Table of Contents + + +

    + + + +

    + Interfaces + + +

    +
    +
    MydbCredentialsInterface
    + + + + + + +

    + Properties + + +

    +
    +
    + $dbname + +  : string +
    +
    Database credentials - database name +If provided will specify the default database to be used when performing queries.
    + +
    + $flags + +  : int +
    +
    Database credentials - connection flags +With the parameter flags you can set different connection options +MYSQLI_CLIENT_COMPRESS - Use compression protocol +MYSQLI_CLIENT_SSL - Use SSL (encryption) +MULTI_STATEMENT flag is not supported in PHP
    + +
    + $host + +  : string +
    +
    Database credentials - hostname +Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter, +the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.
    + +
    + $passwd + +  : string +
    +
    Database credentials - password +If provided or null, the MySQL server will attempt to authenticate the user against those user records +which have no password only. This allows one username to be used with different permissions +(depending on if a password as provided or not).
    + +
    + $port + +  : int|null +
    +
    Database credentials - port +Specifies the port number to attempt to connect to the MySQL server.
    + +
    + $socket + +  : string|null +
    +
    Database credentials - socket +Specifies the socket or named pipe that should be used.
    + +
    + $username + +  : string +
    +
    Database credentials - username
    + +
    + +

    + Methods + + +

    +
    +
    + __construct() + +  : mixed +
    + +
    + getDbname() + +  : string +
    + +
    + getFlags() + +  : int +
    + +
    + getHost() + +  : string +
    + +
    + getPasswd() + +  : string +
    + +
    + getPort() + +  : int|null +
    + +
    + getSocket() + +  : string|null +
    + +
    + getUsername() + +  : string +
    + +
    + + + + + + + +
    +

    + Properties + + +

    + +
    +

    + $flags + + + + +

    + + +

    Database credentials - connection flags +With the parameter flags you can set different connection options +MYSQLI_CLIENT_COMPRESS - Use compression protocol +MYSQLI_CLIENT_SSL - Use SSL (encryption) +MULTI_STATEMENT flag is not supported in PHP

    + + + protected + int + $flags + + + + + +
    + Tags + + +
    +
    +
    + see +
    +
    + https://www.php.net/manual/en/mysqli.real-connect.php + + +
    +
    + +
    +
    +

    + $host + + + + +

    + + +

    Database credentials - hostname +Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter, +the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

    + + + protected + string + $host + + + + + +
    + Tags + + +
    +
    +
    + see +
    +
    + https://www.php.net/manual/en/mysqli.real-connect.php + + +
    +
    + +
    +
    +

    + $passwd + + + + +

    + + +

    Database credentials - password +If provided or null, the MySQL server will attempt to authenticate the user against those user records +which have no password only. This allows one username to be used with different permissions +(depending on if a password as provided or not).

    + + + protected + string + $passwd + + + + + +
    + Tags + + +
    +
    +
    + see +
    +
    + https://www.php.net/manual/en/mysqli.real-connect.php + + +
    +
    + +
    + + + +
    + +
    +

    + Methods + + +

    +
    +

    + __construct() + + +

    + + + + + public + __construct(string $host, string $username, string $passwd, string $dbname[, int|null $port = null ][, string|null $socket = null ][, int $flags = 0 ]) : mixed + +
    +
    + +
    Parameters
    +
    +
    + $host + : string +
    +
    + +
    +
    + $username + : string +
    +
    + +
    +
    + $passwd + : string +
    +
    + +
    +
    + $dbname + : string +
    +
    + +
    +
    + $port + : int|null + = null
    +
    + +
    +
    + $socket + : string|null + = null
    +
    + +
    +
    + $flags + : int + = 0
    +
    + +
    +
    + + + + +
    +
    +

    + getDbname() + + +

    + + + + + public + getDbname() : string + +
    +
    + + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + getFlags() + + +

    + + + + + public + getFlags() : int + +
    +
    + + + + +
    +
    Return values
    + int +
    + +
    +
    +

    + getHost() + + +

    + + + + + public + getHost() : string + +
    +
    + + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + getPasswd() + + +

    + + + + + public + getPasswd() : string + +
    +
    + + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + getPort() + + +

    + + + + + public + getPort() : int|null + +
    +
    + + + + +
    +
    Return values
    + int|null +
    + +
    +
    +

    + getSocket() + + +

    + + + + + public + getSocket() : string|null + +
    +
    + + + + +
    +
    Return values
    + string|null +
    + +
    +
    +

    + getUsername() + + +

    + + + + + public + getUsername() : string + +
    +
    + + + + +
    +
    Return values
    + string +
    + +
    +
    + +
    +
    +
    +
    +
    
    +        
    + +
    +
    + + + +
    +
    +
    + +
    + On this page + + +
    + +
    +
    +
    +
    +
    +

    Search results

    + +
    +
    +
      +
      +
      +
      +
      + + +
      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbCredentialsInterface.html b/php/phpdoc/classes/sql-MydbCredentialsInterface.html new file mode 100644 index 00000000000..150fdab40eb --- /dev/null +++ b/php/phpdoc/classes/sql-MydbCredentialsInterface.html @@ -0,0 +1,642 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
      +

      phpDocumentor

      + + + + + +
      + +
      +
      + + + + +
      +
      + + +
      +

      + MydbCredentialsInterface +
      + in + +
      +

      + + + + + + +
      + Tags + + +
      +
      +
      + author +
      +
      + +

      Sergei Shilko contact@sshilko.com

      +
      + +
      +
      + license +
      +
      + +

      https://opensource.org/licenses/mit-license.php MIT

      +
      + +
      +
      + see +
      +
      + https://github.com/sshilko/php-sql-mydb + + +
      +
      + + + +

      + Table of Contents + + +

      + + + + + + + + + + +

      + Methods + + +

      +
      +
      + getDbname() + +  : string +
      + +
      + getFlags() + +  : int +
      + +
      + getHost() + +  : string +
      + +
      + getPasswd() + +  : string +
      + +
      + getPort() + +  : int|null +
      + +
      + getSocket() + +  : string|null +
      + +
      + getUsername() + +  : string +
      + +
      + + + + + + +
      +

      + Methods + + +

      +
      +

      + getDbname() + + +

      + + + + + public + getDbname() : string + +
      +
      + + + + +
      +
      Return values
      + string +
      + +
      +
      +

      + getFlags() + + +

      + + + + + public + getFlags() : int + +
      +
      + + + + +
      +
      Return values
      + int +
      + +
      +
      +

      + getHost() + + +

      + + + + + public + getHost() : string + +
      +
      + + + + +
      +
      Return values
      + string +
      + +
      +
      +

      + getPasswd() + + +

      + + + + + public + getPasswd() : string + +
      +
      + + + + +
      +
      Return values
      + string +
      + +
      +
      +

      + getPort() + + +

      + + + + + public + getPort() : int|null + +
      +
      + + + + +
      +
      Return values
      + int|null +
      + +
      +
      +

      + getSocket() + + +

      + + + + + public + getSocket() : string|null + +
      +
      + + + + +
      +
      Return values
      + string|null +
      + +
      +
      +

      + getUsername() + + +

      + + + + + public + getUsername() : string + +
      +
      + + + + +
      +
      Return values
      + string +
      + +
      +
      + +
      +
      +
      +
      +
      
      +        
      + +
      +
      + + + +
      +
      +
      + +
      + On this page + + +
      + +
      +
      +
      +
      +
      +

      Search results

      + +
      +
      +
        +
        +
        +
        +
        + + +
        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEnvironment.html b/php/phpdoc/classes/sql-MydbEnvironment.html new file mode 100644 index 00000000000..142b8e27ad4 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEnvironment.html @@ -0,0 +1,1349 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
        +

        phpDocumentor

        + + + + + +
        + +
        +
        + + + + +
        +
        + + +
        +

        + MydbEnvironment + + +
        + in package + +
        + + + implements + MydbEnvironmentInterface + +

        + +
        + + +
        + + + + + + +
        + Tags + + +
        +
        +
        + author +
        +
        + +

        Sergei Shilko contact@sshilko.com

        +
        + +
        +
        + license +
        +
        + +

        https://opensource.org/licenses/mit-license.php MIT

        +
        + +
        +
        + see +
        +
        + https://github.com/sshilko/php-sql-mydb + + +
        +
        + + + +

        + Table of Contents + + +

        + + + +

        + Interfaces + + +

        +
        +
        MydbEnvironmentInterface
        + + + + + + +

        + Properties + + +

        +
        +
        + $knownSignals + +  : array<string|int, int> +
        + +
        + $trappedHandlers + +  : array<string|int, mixed> +
        +
        Backup of signal handlers +Original signal handler, which replaced by custon trap
        + +
        + $trappedSignals + +  : array<string|int, int> +
        +
        Any signals that were trapped during custom signal handler
        + +
        + +

        + Methods + + +

        +
        +
        + endSignalsTrap() + +  : array<string|int, int>|null +
        +
        Disable custom signal handler
        + +
        + error_reporting() + +  : int +
        +
        Sets which PHP errors are reported
        + +
        + gc_collect_cycles() + +  : void +
        + +
        + ignore_user_abort() + +  : int +
        +
        Set whether a client disconnect should abort script execution (does not affect CLI)
        + +
        + ini_set() + +  : string +
        +
        Sets the value of a configuration option
        + +
        + restore_error_handler() + +  : void +
        +
        Restore previous PHP error handler
        + +
        + set_error_handler() + +  : void +
        +
        Set custom PHP error handler
        + +
        + setMysqlndNetReadTimeout() + +  : bool +
        +
        Set mysqlnd.net_read_timeout php ini value
        + +
        + startSignalsTrap() + +  : void +
        +
        Enable custom signal handler
        + +
        + getNullErrorHandler() + +  : callable +
        +
        Error handler that does nothing and does not chain
        + +
        + + + + + + + +
        +

        + Properties + + +

        +
        +

        + $knownSignals + + + + +

        + + + + + protected + array<string|int, int> + $knownSignals + = [\SIGTERM, \SIGINT, \SIGHUP] + + + + + +
        +
        +

        + $trappedHandlers + + + + +

        + + +

        Backup of signal handlers +Original signal handler, which replaced by custon trap

        + + + protected + array<string|int, mixed> + $trappedHandlers + = [] + + + + +
        + Tags + + +
        +
        +
        + psalm-var +
        +
        + +

        array<int, int|resource|string>

        +
        + +
        +
        + +
        +
        +

        + $trappedSignals + + + + +

        + + +

        Any signals that were trapped during custom signal handler

        + + + protected + array<string|int, int> + $trappedSignals + = [] + + + + + +
        +
        + +
        +

        + Methods + + +

        +
        +

        + endSignalsTrap() + + +

        + + +

        Disable custom signal handler

        + + + public + endSignalsTrap() : array<string|int, int>|null + +
        +
        + + + +
        + Tags + + +
        +
        +
        + see +
        +
        + https://wiki.php.net/rfc/async_signals + + +
        +
        + see +
        +
        + https://blog.pascal-martin.fr/post/php71-en-other-new-things/ + + +
        +
        + see +
        +
        + https://www.php.net/manual/en/function.pcntl-signal + + +
        +
        + throws +
        +
        + EnvironmentException + + +
        +
        + +
        +
        Return values
        + array<string|int, int>|null + — +

        array of trapped signals

        +
        + +
        + +
        +
        +

        + error_reporting() + + +

        + + +

        Sets which PHP errors are reported

        + + + public + error_reporting(int $level) : int + +
        +
        + +
        Parameters
        +
        +
        + $level + : int +
        +
        + +
        +
        + + +
        + Tags + + +
        +
        +
        + phpcs:disable +
        +
        + +

        PSR1.Methods.CamelCapsMethodName.NotCamelCaps

        +
        + +
        +
        + SuppressWarnings +
        +
        + +

        ("camelCase")

        +
        + +
        +
        + see +
        +
        + https://www.php.net/manual/en/function.error-reporting + + +
        +
        + +
        +
        Return values
        + int +
        + +
        + +
        +

        + ignore_user_abort() + + +

        + + +

        Set whether a client disconnect should abort script execution (does not affect CLI)

        + + + public + ignore_user_abort() : int + +
        +
        + + + +
        + Tags + + +
        +
        +
        + phpcs:disable +
        +
        + +

        PSR1.Methods.CamelCapsMethodName.NotCamelCaps

        +
        + +
        +
        + SuppressWarnings +
        +
        + +

        ("camelCase")

        +
        + +
        +
        + see +
        +
        + https://www.php.net/manual/en/function.ignore-user-abort + + +
        +
        + +
        +
        Return values
        + int +
        + +
        +
        +

        + ini_set() + + +

        + + +

        Sets the value of a configuration option

        + + + public + ini_set(string $key, string $value) : string + +
        +
        + +
        Parameters
        +
        +
        + $key + : string +
        +
        + +
        +
        + $value + : string +
        +
        + +
        +
        + + +
        + Tags + + +
        +
        +
        + phpcs:disable +
        +
        + +

        PSR1.Methods.CamelCapsMethodName.NotCamelCaps

        +
        + +
        +
        + SuppressWarnings +
        +
        + +

        ("camelCase")

        +
        + +
        +
        + throws +
        +
        + EnvironmentException + + +
        +
        + see +
        +
        + https://www.php.net/manual/en/function.ini-set + + +
        +
        + +
        +
        Return values
        + string +
        + +
        + +
        +

        + set_error_handler() + + +

        + + +

        Set custom PHP error handler

        + + + public + set_error_handler([callable|null $callback = null ][, int $error_levels = E_ALL | E_STRICT ]) : void + +
        +
        + +
        Parameters
        +
        +
        + $callback + : callable|null + = null
        +
        + +
        +
        + $error_levels + : int + = E_ALL | E_STRICT
        +
        + +
        +
        + + +
        + Tags + + +
        +
        +
        + see +
        +
        + https://www.php.net/manual/en/function.set-error-handler + + +
        +
        + SuppressWarnings +
        +
        + +

        ("camelCase")

        +
        + +
        +
        + phpcs:disable +
        +
        + +

        PSR1.Methods.CamelCapsMethodName.NotCamelCaps

        +
        + +
        +
        + + +
        +
        +

        + setMysqlndNetReadTimeout() + + +

        + + +

        Set mysqlnd.net_read_timeout php ini value

        + + + public + setMysqlndNetReadTimeout(string $timeoutSeconds) : bool + +
        +
        +

        mysqlnd and the MySQL Client Library, libmysqlclient use different networking APIs. +mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level network calls. +PHP, by default, sets a read timeout of 60s for streams. +This is set via php.ini, default_socket_timeout. +This default applies to all streams that set no other timeout value. +mysqlnd does not set any other value and therefore connections of long running queries can be disconnected +after default_socket_timeout seconds resulting in an error message 2006 - MySQL Server has gone away. +The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day) +and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout. +The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout.

        +

        mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd. +mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout. +Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library +and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and, +prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation.

        +
        + +
        Parameters
        +
        +
        + $timeoutSeconds + : string +
        +
        + +
        +
        + + +
        + Tags + + +
        +
        +
        + throws +
        +
        + EnvironmentException + + +
        +
        + see +
        +
        + https://www.php.net/manual/en/mysqlnd.config.php + + +
        +
        + +
        +
        Return values
        + bool +
        + +
        + + +
        + +
        +
        +
        +
        +
        
        +        
        + +
        +
        + + + +
        +
        +
        + +
        + On this page + + +
        + +
        +
        +
        +
        +
        +

        Search results

        + +
        +
        +
          +
          +
          +
          +
          + + +
          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEnvironmentInterface.html b/php/phpdoc/classes/sql-MydbEnvironmentInterface.html new file mode 100644 index 00000000000..d2e6aa6a4b9 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEnvironmentInterface.html @@ -0,0 +1,914 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
          +

          phpDocumentor

          + + + + + +
          + +
          +
          + + + + +
          +
          + + +
          +

          + MydbEnvironmentInterface +
          + in + +
          +

          + + + + + + +
          + Tags + + +
          +
          +
          + author +
          +
          + +

          Sergei Shilko contact@sshilko.com

          +
          + +
          +
          + license +
          +
          + +

          https://opensource.org/licenses/mit-license.php MIT

          +
          + +
          +
          + see +
          +
          + https://github.com/sshilko/php-sql-mydb + + +
          +
          + + + +

          + Table of Contents + + +

          + + + + + + + + + + +

          + Methods + + +

          +
          +
          + endSignalsTrap() + +  : array<string|int, mixed>|null +
          + +
          + error_reporting() + +  : int +
          + +
          + gc_collect_cycles() + +  : void +
          + +
          + ignore_user_abort() + +  : int +
          + +
          + ini_set() + +  : string +
          + +
          + restore_error_handler() + +  : void +
          + +
          + set_error_handler() + +  : void +
          + +
          + setMysqlndNetReadTimeout() + +  : bool +
          + +
          + startSignalsTrap() + +  : void +
          + +
          + + + + + + +
          +

          + Methods + + +

          +
          +

          + endSignalsTrap() + + +

          + + + + + public + endSignalsTrap() : array<string|int, mixed>|null + +
          +
          + + + + +
          +
          Return values
          + array<string|int, mixed>|null +
          + +
          +
          +

          + error_reporting() + + +

          + + + + + public + error_reporting(int $level) : int + +
          +
          + +
          Parameters
          +
          +
          + $level + : int +
          +
          + +
          +
          + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + +
          +
          Return values
          + int +
          + +
          +
          +

          + gc_collect_cycles() + + +

          + + + + + public + gc_collect_cycles() : void + +
          +
          + + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + + +
          +
          +

          + ignore_user_abort() + + +

          + + + + + public + ignore_user_abort() : int + +
          +
          + + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + +
          +
          Return values
          + int +
          + +
          +
          +

          + ini_set() + + +

          + + + + + public + ini_set(string $key, string $value) : string + +
          +
          + +
          Parameters
          +
          +
          + $key + : string +
          +
          + +
          +
          + $value + : string +
          +
          + +
          +
          + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + +
          +
          Return values
          + string +
          + +
          +
          +

          + restore_error_handler() + + +

          + + + + + public + restore_error_handler() : void + +
          +
          + + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + + +
          +
          +

          + set_error_handler() + + +

          + + + + + public + set_error_handler([callable|null $callback = null ][, int $error_levels = E_ALL | E_STRICT ]) : void + +
          +
          + +
          Parameters
          +
          +
          + $callback + : callable|null + = null
          +
          + +
          +
          + $error_levels + : int + = E_ALL | E_STRICT
          +
          + +
          +
          + + +
          + Tags + + +
          +
          +
          + SuppressWarnings +
          +
          + +

          ("camelCase")

          +
          + +
          +
          + phpcs:disable +
          +
          + +

          PSR1.Methods.CamelCapsMethodName.NotCamelCaps

          +
          + +
          +
          + + +
          +
          +

          + setMysqlndNetReadTimeout() + + +

          + + + + + public + setMysqlndNetReadTimeout(string $timeoutSeconds) : bool + +
          +
          + +
          Parameters
          +
          +
          + $timeoutSeconds + : string +
          +
          + +
          +
          + + + +
          +
          Return values
          + bool +
          + +
          + +
          + +
          +
          +
          +
          +
          
          +        
          + +
          +
          + + + +
          +
          +
          + +
          + On this page + + +
          + +
          +
          +
          +
          +
          +

          Search results

          + +
          +
          +
            +
            +
            +
            +
            + + +
            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-ExampleEvent.html b/php/phpdoc/classes/sql-MydbEvent-ExampleEvent.html new file mode 100644 index 00000000000..b88a3b0c4e3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-ExampleEvent.html @@ -0,0 +1,342 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
            +

            phpDocumentor

            + + + + + +
            + +
            +
            + + + + +
            + + +
            +

            + ExampleEvent + + + extends MydbEvent + + +
            + in package + +
            + + +

            + + + + +
            + + + + + + + + +

            + Table of Contents + +

            + +
            +
            + notify() + +  : void +
            +
            + +
            + getListeners() + +  : array<string|int, callable> +
            +
            + +
            + + + + + + + +
            +

            + Methods + +

            +
            +

            + notify() + +

            + + + + + public + notify(array<string|int, mixed> $payload) : void + +
            + +
            Parameters
            +
            +
            + $payload + : array<string|int, mixed> +
            +
            +
            + +
            +
            + + + +
            Return values
            + void + — + + +
            +
            +

            + getListeners() + +

            + + + + + protected + getListeners() : array<string|int, callable> + + + + + +
            Return values
            + array<string|int, callable> + — + + +
            +
            + + + + +
            +
            +
            +
            +

            Search results

            + +
            +
            +
              +
              +
              +
              +
              +
              + + +
              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-ExampleListener.html b/php/phpdoc/classes/sql-MydbEvent-ExampleListener.html new file mode 100644 index 00000000000..520c302ee1f --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-ExampleListener.html @@ -0,0 +1,380 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
              +

              phpDocumentor

              + + + + + +
              + +
              +
              + + + + +
              + + +
              +

              + ExampleListener + + +
              + in package + +
              + + +

              + + + + +
              + + + + + + + + +

              + Table of Contents + +

              + +
              +
              + onMyEvent() + +  : callable +
              +
              + +
              + onMySomeEvent() + +  : callable +
              +
              + +
              + doSomeWork() + +  : string +
              +
              + +
              + + + + + + + +
              +

              + Methods + +

              +
              +

              + onMyEvent() + +

              + + + + + public + onMyEvent() : callable + +
              + + + + +
              Return values
              + callable + — + + +
              +
              +

              + onMySomeEvent() + +

              + + + + + public + onMySomeEvent() : callable + +
              + + + + +
              Return values
              + callable + — + + +
              +
              +

              + doSomeWork() + +

              + + + + + protected + doSomeWork(array<string|int, mixed> $data) : string + +
              + +
              Parameters
              +
              +
              + $data + : array<string|int, mixed> +
              +
              +
              + +
              +
              + + + +
              Return values
              + string + — + + +
              +
              + + + + +
              +
              +
              +
              +

              Search results

              + +
              +
              +
                +
                +
                +
                +
                +
                + + +
                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-Internal.html b/php/phpdoc/classes/sql-MydbEvent-Internal.html new file mode 100644 index 00000000000..f085ffdafbb --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-Internal.html @@ -0,0 +1,469 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                +

                phpDocumentor

                + + + + + +
                + +
                +
                + + + + +
                + + +
                +

                + Internal + + + extends MydbEvent + + +
                + in package + +
                + + +

                + + + + +
                + + + + + + + + +

                + Table of Contents + +

                + +
                +
                + $eventMetadata + +  : array<string|int, mixed>|null +
                +
                + +
                + getEventMetadata() + +  : array<string|int, mixed>|null +
                +
                + +
                + notify() + +  : void +
                +
                + +
                + getListeners() + +  : array<string|int, MydbListenerInterface> +
                +
                + +
                + + + + + + +
                +

                + Properties + +

                +
                +

                + $eventMetadata + + + +

                + + + + + private + array<string|int, mixed>|null + $eventMetadata + = null + + +
                + + +
                + Tags + +
                +
                +
                + psalm-var +
                +
                + +

                array<array-key, string>|null

                +
                + +
                +
                + +
                +
                + +
                +

                + Methods + +

                +
                +

                + getEventMetadata() + +

                + + + + + public + getEventMetadata() : array<string|int, mixed>|null + +
                + + + + +
                Return values
                + array<string|int, mixed>|null + — + + +
                +
                +

                + notify() + +

                + + + + + public + notify([array<string|int, mixed>|null $metadata = null ]) : void + + +
                Parameters
                +
                +
                + $metadata + : array<string|int, mixed>|null + = null
                +
                +
                + +
                +
                + + +
                + Tags + +
                +
                +
                + throws +
                +
                + EventException + + +
                +
                + psalm-param +
                +
                + +

                array<array-key, string>|null $metadata

                +
                + +
                +
                + +
                Return values
                + void + — + + +
                + +
                + + + + +
                +
                +
                +
                +

                Search results

                + +
                +
                +
                  +
                  +
                  +
                  +
                  +
                  + + +
                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-InternalConnectionBegin.html b/php/phpdoc/classes/sql-MydbEvent-InternalConnectionBegin.html new file mode 100644 index 00000000000..ae7acf1b336 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-InternalConnectionBegin.html @@ -0,0 +1,780 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                  +

                  phpDocumentor

                  + + + + + +
                  + +
                  +
                  + + + + +
                  +
                  + + +
                  +

                  + InternalConnectionBegin + + + extends InternalEvent + + +
                  + in package + +
                  + + +

                  + +
                  + + +
                  + + + + + + + + + +

                  + Table of Contents + + +

                  + + + + + + + + + +

                  + Properties + + +

                  +
                  +
                  + $data + +  : array<string|int, mixed>|null +
                  + +
                  + $listeners + +  : array<string|int, mixed> +
                  + +
                  + +

                  + Methods + + +

                  +
                  +
                  + __construct() + +  : mixed +
                  + +
                  + getEventMetadata() + +  : array<string|int, mixed>|null +
                  + +
                  + getEventName() + +  : string +
                  + +
                  + notify() + +  : void +
                  + +
                  + setListeners() + +  : MydbEventInterface +
                  + +
                  + getListeners() + +  : array<string|int, MydbListenerInterface> +
                  + +
                  + + + + + + + +
                  +

                  + Properties + + +

                  +
                  +

                  + $data + + + + +

                  + + + + + protected + array<string|int, mixed>|null + $data + = null + + + + +
                  + Tags + + +
                  +
                  +
                  + psalm-var +
                  +
                  + +

                  array<array-key, mixed>|null

                  +
                  + +
                  +
                  + +
                  +
                  +

                  + $listeners + + + + +

                  + + + + + protected + array<string|int, mixed> + $listeners + = [] + + + + +
                  + Tags + + +
                  +
                  +
                  + psalm-var +
                  +
                  + +

                  array<\sql\MydbListenerInterface>

                  +
                  + +
                  +
                  + +
                  +
                  + +
                  +

                  + Methods + + +

                  +
                  +

                  + __construct() + + +

                  + + + + + public + __construct(string $host, string $dbname) : mixed + +
                  +
                  + +
                  Parameters
                  +
                  +
                  + $host + : string +
                  +
                  + +
                  +
                  + $dbname + : string +
                  +
                  + +
                  +
                  + + + + +
                  +
                  +

                  + getEventMetadata() + + +

                  + + + + + public + abstract getEventMetadata() : array<string|int, mixed>|null + +
                  +
                  + + + +
                  + Tags + + +
                  +
                  +
                  + psalm-return +
                  +
                  + +

                  array<array-key, mixed>|null

                  +
                  + +
                  +
                  + +
                  +
                  Return values
                  + array<string|int, mixed>|null +
                  + +
                  +
                  +

                  + getEventName() + + +

                  + + + + + public + getEventName() : string + +
                  +
                  + + + + +
                  +
                  Return values
                  + string +
                  + +
                  +
                  +

                  + notify() + + +

                  + + + + + public + notify() : void + +
                  +
                  + + + +
                  + Tags + + +
                  +
                  +
                  + throws +
                  +
                  + EventException + + +
                  +
                  + + +
                  +
                  +

                  + setListeners() + + +

                  + + + + + public + setListeners(array<string|int, mixed> $listeners) : MydbEventInterface + +
                  +
                  + +
                  Parameters
                  +
                  +
                  + $listeners + : array<string|int, mixed> +
                  +
                  + +
                  +
                  + + +
                  + Tags + + +
                  +
                  +
                  + psalm-param +
                  +
                  + +

                  array<\sql\MydbListenerInterface> $listeners

                  +
                  + +
                  +
                  + +
                  +
                  Return values
                  + MydbEventInterface +
                  + +
                  + +
                  + +
                  +
                  +
                  +
                  +
                  
                  +        
                  + +
                  +
                  + + + +
                  +
                  +
                  + +
                  + On this page + + +
                  + +
                  +
                  +
                  +
                  +
                  +

                  Search results

                  + +
                  +
                  +
                    +
                    +
                    +
                    +
                    + + +
                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-InternalConnectionEnd.html b/php/phpdoc/classes/sql-MydbEvent-InternalConnectionEnd.html new file mode 100644 index 00000000000..99c7a076086 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-InternalConnectionEnd.html @@ -0,0 +1,787 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                    +

                    phpDocumentor

                    + + + + + +
                    + +
                    +
                    + + + + +
                    +
                    + + +
                    +

                    + InternalConnectionEnd + + + extends InternalEvent + + +
                    + in package + +
                    + + +

                    + +
                    + + +
                    + + + + + + + + + +

                    + Table of Contents + + +

                    + + + + + + + + + +

                    + Properties + + +

                    +
                    +
                    + $data + +  : array<string|int, mixed>|null +
                    + +
                    + $listeners + +  : array<string|int, mixed> +
                    + +
                    + +

                    + Methods + + +

                    +
                    +
                    + __construct() + +  : mixed +
                    + +
                    + getEventMetadata() + +  : array<string|int, mixed>|null +
                    + +
                    + getEventName() + +  : string +
                    + +
                    + notify() + +  : void +
                    + +
                    + setListeners() + +  : MydbEventInterface +
                    + +
                    + getListeners() + +  : array<string|int, MydbListenerInterface> +
                    + +
                    + + + + + + + +
                    +

                    + Properties + + +

                    +
                    +

                    + $data + + + + +

                    + + + + + protected + array<string|int, mixed>|null + $data + = null + + + + +
                    + Tags + + +
                    +
                    +
                    + psalm-var +
                    +
                    + +

                    array<array-key, mixed>|null

                    +
                    + +
                    +
                    + +
                    +
                    +

                    + $listeners + + + + +

                    + + + + + protected + array<string|int, mixed> + $listeners + = [] + + + + +
                    + Tags + + +
                    +
                    +
                    + psalm-var +
                    +
                    + +

                    array<\sql\MydbListenerInterface>

                    +
                    + +
                    +
                    + +
                    +
                    + +
                    +

                    + Methods + + +

                    +
                    +

                    + __construct() + + +

                    + + + + + public + __construct(string $host, string $dbname, bool $success) : mixed + +
                    +
                    + +
                    Parameters
                    +
                    +
                    + $host + : string +
                    +
                    + +
                    +
                    + $dbname + : string +
                    +
                    + +
                    +
                    + $success + : bool +
                    +
                    + +
                    +
                    + + + + +
                    +
                    +

                    + getEventMetadata() + + +

                    + + + + + public + abstract getEventMetadata() : array<string|int, mixed>|null + +
                    +
                    + + + +
                    + Tags + + +
                    +
                    +
                    + psalm-return +
                    +
                    + +

                    array<array-key, mixed>|null

                    +
                    + +
                    +
                    + +
                    +
                    Return values
                    + array<string|int, mixed>|null +
                    + +
                    +
                    +

                    + getEventName() + + +

                    + + + + + public + getEventName() : string + +
                    +
                    + + + + +
                    +
                    Return values
                    + string +
                    + +
                    +
                    +

                    + notify() + + +

                    + + + + + public + notify() : void + +
                    +
                    + + + +
                    + Tags + + +
                    +
                    +
                    + throws +
                    +
                    + EventException + + +
                    +
                    + + +
                    +
                    +

                    + setListeners() + + +

                    + + + + + public + setListeners(array<string|int, mixed> $listeners) : MydbEventInterface + +
                    +
                    + +
                    Parameters
                    +
                    +
                    + $listeners + : array<string|int, mixed> +
                    +
                    + +
                    +
                    + + +
                    + Tags + + +
                    +
                    +
                    + psalm-param +
                    +
                    + +

                    array<\sql\MydbListenerInterface> $listeners

                    +
                    + +
                    +
                    + +
                    +
                    Return values
                    + MydbEventInterface +
                    + +
                    + +
                    + +
                    +
                    +
                    +
                    +
                    
                    +        
                    + +
                    +
                    + + + +
                    +
                    +
                    + +
                    + On this page + + +
                    + +
                    +
                    +
                    +
                    +
                    +

                    Search results

                    + +
                    +
                    +
                      +
                      +
                      +
                      +
                      + + +
                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-InternalEvent.html b/php/phpdoc/classes/sql-MydbEvent-InternalEvent.html new file mode 100644 index 00000000000..e646168b85f --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-InternalEvent.html @@ -0,0 +1,725 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                      +

                      phpDocumentor

                      + + + + + +
                      + +
                      +
                      + + + + +
                      +
                      + + +
                      +

                      + InternalEvent + + + extends MydbEvent + + +
                      + in package + +
                      + + +

                      + +
                      + + +
                      + + + + + + + + + +

                      + Table of Contents + + +

                      + + + + + + + + + +

                      + Properties + + +

                      +
                      +
                      + $data + +  : array<string|int, mixed>|null +
                      + +
                      + $listeners + +  : array<string|int, mixed> +
                      + +
                      + +

                      + Methods + + +

                      +
                      +
                      + getEventMetadata() + +  : array<string|int, mixed>|null +
                      + +
                      + getEventName() + +  : string +
                      + +
                      + notify() + +  : void +
                      + +
                      + setListeners() + +  : MydbEventInterface +
                      + +
                      + getListeners() + +  : array<string|int, MydbListenerInterface> +
                      + +
                      + + + + + + + +
                      +

                      + Properties + + +

                      +
                      +

                      + $data + + + + +

                      + + + + + protected + array<string|int, mixed>|null + $data + = null + + + + +
                      + Tags + + +
                      +
                      +
                      + psalm-var +
                      +
                      + +

                      array<array-key, mixed>|null

                      +
                      + +
                      +
                      + +
                      +
                      +

                      + $listeners + + + + +

                      + + + + + protected + array<string|int, mixed> + $listeners + = [] + + + + +
                      + Tags + + +
                      +
                      +
                      + psalm-var +
                      +
                      + +

                      array<\sql\MydbListenerInterface>

                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +

                      + Methods + + +

                      +
                      +

                      + getEventMetadata() + + +

                      + + + + + public + getEventMetadata() : array<string|int, mixed>|null + +
                      +
                      + + + + +
                      +
                      Return values
                      + array<string|int, mixed>|null +
                      + +
                      +
                      +

                      + getEventName() + + +

                      + + + + + public + getEventName() : string + +
                      +
                      + + + + +
                      +
                      Return values
                      + string +
                      + +
                      +
                      +

                      + notify() + + +

                      + + + + + public + notify() : void + +
                      +
                      + + + +
                      + Tags + + +
                      +
                      +
                      + throws +
                      +
                      + EventException + + +
                      +
                      + + +
                      +
                      +

                      + setListeners() + + +

                      + + + + + public + setListeners(array<string|int, mixed> $listeners) : MydbEventInterface + +
                      +
                      + +
                      Parameters
                      +
                      +
                      + $listeners + : array<string|int, mixed> +
                      +
                      + +
                      +
                      + + +
                      + Tags + + +
                      +
                      +
                      + psalm-param +
                      +
                      + +

                      array<\sql\MydbListenerInterface> $listeners

                      +
                      + +
                      +
                      + +
                      +
                      Return values
                      + MydbEventInterface +
                      + +
                      +
                      +

                      + getListeners() + + +

                      + + + + + protected + getListeners() : array<string|int, MydbListenerInterface> + +
                      +
                      + + + +
                      + Tags + + +
                      +
                      +
                      + psalm-return +
                      +
                      + +

                      array<\sql\MydbListenerInterface>

                      +
                      + +
                      +
                      + +
                      +
                      Return values
                      + array<string|int, MydbListenerInterface> +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      
                      +        
                      + +
                      +
                      + + + +
                      +
                      +
                      + +
                      + On this page + + +
                      + +
                      +
                      +
                      +
                      +
                      +

                      Search results

                      + +
                      +
                      +
                        +
                        +
                        +
                        +
                        + + +
                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-InternalQueryBegin.html b/php/phpdoc/classes/sql-MydbEvent-InternalQueryBegin.html new file mode 100644 index 00000000000..293cc21fc6a --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-InternalQueryBegin.html @@ -0,0 +1,773 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                        +

                        phpDocumentor

                        + + + + + +
                        + +
                        +
                        + + + + +
                        +
                        + + +
                        +

                        + InternalQueryBegin + + + extends InternalEvent + + +
                        + in package + +
                        + + +

                        + +
                        + + +
                        + + + + + + + + + +

                        + Table of Contents + + +

                        + + + + + + + + + +

                        + Properties + + +

                        +
                        +
                        + $data + +  : array<string|int, mixed>|null +
                        + +
                        + $listeners + +  : array<string|int, mixed> +
                        + +
                        + +

                        + Methods + + +

                        +
                        +
                        + __construct() + +  : mixed +
                        + +
                        + getEventMetadata() + +  : array<string|int, mixed>|null +
                        + +
                        + getEventName() + +  : string +
                        + +
                        + notify() + +  : void +
                        + +
                        + setListeners() + +  : MydbEventInterface +
                        + +
                        + getListeners() + +  : array<string|int, MydbListenerInterface> +
                        + +
                        + + + + + + + +
                        +

                        + Properties + + +

                        +
                        +

                        + $data + + + + +

                        + + + + + protected + array<string|int, mixed>|null + $data + = null + + + + +
                        + Tags + + +
                        +
                        +
                        + psalm-var +
                        +
                        + +

                        array<array-key, mixed>|null

                        +
                        + +
                        +
                        + +
                        +
                        +

                        + $listeners + + + + +

                        + + + + + protected + array<string|int, mixed> + $listeners + = [] + + + + +
                        + Tags + + +
                        +
                        +
                        + psalm-var +
                        +
                        + +

                        array<\sql\MydbListenerInterface>

                        +
                        + +
                        +
                        + +
                        +
                        + +
                        +

                        + Methods + + +

                        +
                        +

                        + __construct() + + +

                        + + + + + public + __construct(string $sql) : mixed + +
                        +
                        + +
                        Parameters
                        +
                        +
                        + $sql + : string +
                        +
                        + +
                        +
                        + + + + +
                        +
                        +

                        + getEventMetadata() + + +

                        + + + + + public + abstract getEventMetadata() : array<string|int, mixed>|null + +
                        +
                        + + + +
                        + Tags + + +
                        +
                        +
                        + psalm-return +
                        +
                        + +

                        array<array-key, mixed>|null

                        +
                        + +
                        +
                        + +
                        +
                        Return values
                        + array<string|int, mixed>|null +
                        + +
                        +
                        +

                        + getEventName() + + +

                        + + + + + public + getEventName() : string + +
                        +
                        + + + + +
                        +
                        Return values
                        + string +
                        + +
                        +
                        +

                        + notify() + + +

                        + + + + + public + notify() : void + +
                        +
                        + + + +
                        + Tags + + +
                        +
                        +
                        + throws +
                        +
                        + EventException + + +
                        +
                        + + +
                        +
                        +

                        + setListeners() + + +

                        + + + + + public + setListeners(array<string|int, mixed> $listeners) : MydbEventInterface + +
                        +
                        + +
                        Parameters
                        +
                        +
                        + $listeners + : array<string|int, mixed> +
                        +
                        + +
                        +
                        + + +
                        + Tags + + +
                        +
                        +
                        + psalm-param +
                        +
                        + +

                        array<\sql\MydbListenerInterface> $listeners

                        +
                        + +
                        +
                        + +
                        +
                        Return values
                        + MydbEventInterface +
                        + +
                        + +
                        + +
                        +
                        +
                        +
                        +
                        
                        +        
                        + +
                        +
                        + + + +
                        +
                        +
                        + +
                        + On this page + + +
                        + +
                        +
                        +
                        +
                        +
                        +

                        Search results

                        + +
                        +
                        +
                          +
                          +
                          +
                          +
                          + + +
                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent-InternalQueryEnd.html b/php/phpdoc/classes/sql-MydbEvent-InternalQueryEnd.html new file mode 100644 index 00000000000..c225811df69 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent-InternalQueryEnd.html @@ -0,0 +1,780 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                          +

                          phpDocumentor

                          + + + + + +
                          + +
                          +
                          + + + + +
                          +
                          + + +
                          +

                          + InternalQueryEnd + + + extends InternalEvent + + +
                          + in package + +
                          + + +

                          + +
                          + + +
                          + + + + + + + + + +

                          + Table of Contents + + +

                          + + + + + + + + + +

                          + Properties + + +

                          +
                          +
                          + $data + +  : array<string|int, mixed>|null +
                          + +
                          + $listeners + +  : array<string|int, mixed> +
                          + +
                          + +

                          + Methods + + +

                          +
                          +
                          + __construct() + +  : mixed +
                          + +
                          + getEventMetadata() + +  : array<string|int, mixed>|null +
                          + +
                          + getEventName() + +  : string +
                          + +
                          + notify() + +  : void +
                          + +
                          + setListeners() + +  : MydbEventInterface +
                          + +
                          + getListeners() + +  : array<string|int, MydbListenerInterface> +
                          + +
                          + + + + + + + +
                          +

                          + Properties + + +

                          +
                          +

                          + $data + + + + +

                          + + + + + protected + array<string|int, mixed>|null + $data + = null + + + + +
                          + Tags + + +
                          +
                          +
                          + psalm-var +
                          +
                          + +

                          array<array-key, mixed>|null

                          +
                          + +
                          +
                          + +
                          +
                          +

                          + $listeners + + + + +

                          + + + + + protected + array<string|int, mixed> + $listeners + = [] + + + + +
                          + Tags + + +
                          +
                          +
                          + psalm-var +
                          +
                          + +

                          array<\sql\MydbListenerInterface>

                          +
                          + +
                          +
                          + +
                          +
                          + +
                          +

                          + Methods + + +

                          +
                          +

                          + __construct() + + +

                          + + + + + public + __construct(string $sql, bool $success) : mixed + +
                          +
                          + +
                          Parameters
                          +
                          +
                          + $sql + : string +
                          +
                          + +
                          +
                          + $success + : bool +
                          +
                          + +
                          +
                          + + + + +
                          +
                          +

                          + getEventMetadata() + + +

                          + + + + + public + abstract getEventMetadata() : array<string|int, mixed>|null + +
                          +
                          + + + +
                          + Tags + + +
                          +
                          +
                          + psalm-return +
                          +
                          + +

                          array<array-key, mixed>|null

                          +
                          + +
                          +
                          + +
                          +
                          Return values
                          + array<string|int, mixed>|null +
                          + +
                          +
                          +

                          + getEventName() + + +

                          + + + + + public + getEventName() : string + +
                          +
                          + + + + +
                          +
                          Return values
                          + string +
                          + +
                          +
                          +

                          + notify() + + +

                          + + + + + public + notify() : void + +
                          +
                          + + + +
                          + Tags + + +
                          +
                          +
                          + throws +
                          +
                          + EventException + + +
                          +
                          + + +
                          +
                          +

                          + setListeners() + + +

                          + + + + + public + setListeners(array<string|int, mixed> $listeners) : MydbEventInterface + +
                          +
                          + +
                          Parameters
                          +
                          +
                          + $listeners + : array<string|int, mixed> +
                          +
                          + +
                          +
                          + + +
                          + Tags + + +
                          +
                          +
                          + psalm-param +
                          +
                          + +

                          array<\sql\MydbListenerInterface> $listeners

                          +
                          + +
                          +
                          + +
                          +
                          Return values
                          + MydbEventInterface +
                          + +
                          + +
                          + +
                          +
                          +
                          +
                          +
                          
                          +        
                          + +
                          +
                          + + + +
                          +
                          +
                          + +
                          + On this page + + +
                          + +
                          +
                          +
                          +
                          +
                          +

                          Search results

                          + +
                          +
                          +
                            +
                            +
                            +
                            +
                            + + +
                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEvent.html b/php/phpdoc/classes/sql-MydbEvent.html new file mode 100644 index 00000000000..0b1ea2a4a79 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEvent.html @@ -0,0 +1,533 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                            +

                            phpDocumentor

                            + + + + + +
                            + +
                            +
                            + + + + +
                            +
                            + + +
                            +

                            + MydbEvent + + +
                            + in package + +
                            + + + implements + MydbEventInterface, MydbEventMetadataInterface + +

                            + +
                            + + +
                            AbstractYes
                            + +
                            + + + + + + + + + +

                            + Table of Contents + + +

                            + + + +

                            + Interfaces + + +

                            +
                            +
                            MydbEventInterface
                            MydbEventMetadataInterface
                            + + + + + + + +

                            + Methods + + +

                            +
                            +
                            + getEventMetadata() + +  : array<string|int, mixed>|null +
                            + +
                            + getEventName() + +  : string +
                            + +
                            + notify() + +  : void +
                            + +
                            + getListeners() + +  : array<string|int, MydbListenerInterface> +
                            + +
                            + + + + + + + + +
                            +

                            + Methods + + +

                            +
                            +

                            + getEventMetadata() + + +

                            + + + + + public + abstract getEventMetadata() : array<string|int, mixed>|null + +
                            +
                            + + + +
                            + Tags + + +
                            +
                            +
                            + psalm-return +
                            +
                            + +

                            array<array-key, mixed>|null

                            +
                            + +
                            +
                            + +
                            +
                            Return values
                            + array<string|int, mixed>|null +
                            + +
                            +
                            +

                            + getEventName() + + +

                            + + + + + public + getEventName() : string + +
                            +
                            + + + + +
                            +
                            Return values
                            + string +
                            + +
                            +
                            +

                            + notify() + + +

                            + + + + + public + notify() : void + +
                            +
                            + + + +
                            + Tags + + +
                            +
                            +
                            + throws +
                            +
                            + EventException + + +
                            +
                            + + +
                            + +
                            + +
                            +
                            +
                            +
                            +
                            
                            +        
                            + +
                            +
                            + + + +
                            +
                            +
                            + +
                            + On this page + + +
                            + +
                            +
                            +
                            +
                            +
                            +

                            Search results

                            + +
                            +
                            +
                              +
                              +
                              +
                              +
                              + + +
                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEventInterface.html b/php/phpdoc/classes/sql-MydbEventInterface.html new file mode 100644 index 00000000000..c71837a79d5 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEventInterface.html @@ -0,0 +1,353 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                              +

                              phpDocumentor

                              + + + + + +
                              + +
                              +
                              + + + + +
                              +
                              + + +
                              +

                              + MydbEventInterface +
                              + in + +
                              +

                              + + + + + + + + + +

                              + Table of Contents + + +

                              + + + + + + + + + + +

                              + Methods + + +

                              +
                              +
                              + notify() + +  : void +
                              + +
                              + + + + + + +
                              +

                              + Methods + + +

                              +
                              +

                              + notify() + + +

                              + + + + + public + notify() : void + +
                              +
                              + + + + + +
                              +
                              + +
                              +
                              +
                              +
                              +
                              
                              +        
                              + +
                              +
                              + + + +
                              +
                              +
                              + +
                              + On this page + + +
                              + +
                              +
                              +
                              +
                              +
                              +

                              Search results

                              + +
                              +
                              +
                                +
                                +
                                +
                                +
                                + + +
                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbEventMetadataInterface.html b/php/phpdoc/classes/sql-MydbEventMetadataInterface.html new file mode 100644 index 00000000000..22ebb208c58 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbEventMetadataInterface.html @@ -0,0 +1,415 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                +

                                phpDocumentor

                                + + + + + +
                                + +
                                +
                                + + + + +
                                +
                                + + +
                                +

                                + MydbEventMetadataInterface +
                                + in + +
                                +

                                + + + + + + + + + +

                                + Table of Contents + + +

                                + + + + + + + + + + +

                                + Methods + + +

                                +
                                +
                                + getEventMetadata() + +  : array<string|int, mixed>|null +
                                + +
                                + getEventName() + +  : string +
                                + +
                                + + + + + + +
                                +

                                + Methods + + +

                                +
                                +

                                + getEventMetadata() + + +

                                + + + + + public + getEventMetadata() : array<string|int, mixed>|null + +
                                +
                                + + + +
                                + Tags + + +
                                +
                                +
                                + psalm-return +
                                +
                                + +

                                array<array-key, mixed>|null

                                +
                                + +
                                +
                                + +
                                +
                                Return values
                                + array<string|int, mixed>|null +
                                + +
                                +
                                +

                                + getEventName() + + +

                                + + + + + public + getEventName() : string + +
                                +
                                + + + + +
                                +
                                Return values
                                + string +
                                + +
                                +
                                + +
                                +
                                +
                                +
                                +
                                
                                +        
                                + +
                                +
                                + + + +
                                +
                                +
                                + +
                                + On this page + + +
                                + +
                                +
                                +
                                +
                                +
                                +

                                Search results

                                + +
                                +
                                +
                                  +
                                  +
                                  +
                                  +
                                  + + +
                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-AsyncException.html b/php/phpdoc/classes/sql-MydbException-AsyncException.html new file mode 100644 index 00000000000..73245c5ef63 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-AsyncException.html @@ -0,0 +1,283 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                  +

                                  phpDocumentor

                                  + + + + + +
                                  + +
                                  +
                                  + + + + +
                                  + + +
                                  +

                                  + AsyncException + + + extends MydbException + + +
                                  + in package + +
                                  + + +

                                  + + + + + + +
                                  + Tags + +
                                  +
                                  +
                                  + author +
                                  +
                                  + +

                                  Sergei Shilko contact@sshilko.com

                                  +
                                  + +
                                  +
                                  + license +
                                  +
                                  + +

                                  https://opensource.org/licenses/mit-license.php MIT

                                  +
                                  + +
                                  +
                                  + category +
                                  +
                                  + +

                                  exceptions

                                  +
                                  + +
                                  +
                                  + see +
                                  +
                                  + https://github.com/sshilko/php-sql-mydb + + +
                                  +
                                  + + + + + + + + + + + + + + + + + +
                                  +
                                  +
                                  +
                                  +

                                  Search results

                                  + +
                                  +
                                  +
                                    +
                                    +
                                    +
                                    +
                                    +
                                    + + +
                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-ConnectDefaultsException.html b/php/phpdoc/classes/sql-MydbException-ConnectDefaultsException.html new file mode 100644 index 00000000000..a1473947f80 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-ConnectDefaultsException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                    +

                                    phpDocumentor

                                    + + + + + +
                                    + +
                                    +
                                    + + + + +
                                    +
                                    + + +
                                    +

                                    + ConnectDefaultsException + + + extends MydbException + + +
                                    + in package + +
                                    + + +

                                    + +
                                    + + +
                                    + + + + + + +
                                    + Tags + + +
                                    +
                                    +
                                    + author +
                                    +
                                    + +

                                    Sergei Shilko contact@sshilko.com

                                    +
                                    + +
                                    +
                                    + license +
                                    +
                                    + +

                                    https://opensource.org/licenses/mit-license.php MIT

                                    +
                                    + +
                                    +
                                    + category +
                                    +
                                    + +

                                    exceptions

                                    +
                                    + +
                                    +
                                    + see +
                                    +
                                    + https://github.com/sshilko/php-sql-mydb + + +
                                    +
                                    + + + +

                                    + Table of Contents + + +

                                    + + + + + + + + + + + + + + + + + + + +
                                    +
                                    +
                                    +
                                    +
                                    
                                    +        
                                    + +
                                    +
                                    + + + +
                                    +
                                    +
                                    + +
                                    + On this page + +
                                      +
                                    • Table Of Contents
                                    • +
                                    • +
                                        +
                                      +
                                    • + + +
                                    +
                                    + +
                                    +
                                    +
                                    +
                                    +
                                    +

                                    Search results

                                    + +
                                    +
                                    +
                                      +
                                      +
                                      +
                                      +
                                      + + +
                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-ConnectException.html b/php/phpdoc/classes/sql-MydbException-ConnectException.html new file mode 100644 index 00000000000..a6e1c3eed87 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-ConnectException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                      +

                                      phpDocumentor

                                      + + + + + +
                                      + +
                                      +
                                      + + + + +
                                      +
                                      + + +
                                      +

                                      + ConnectException + + + extends MydbException + + +
                                      + in package + +
                                      + + +

                                      + +
                                      + + +
                                      + + + + + + +
                                      + Tags + + +
                                      +
                                      +
                                      + author +
                                      +
                                      + +

                                      Sergei Shilko contact@sshilko.com

                                      +
                                      + +
                                      +
                                      + license +
                                      +
                                      + +

                                      https://opensource.org/licenses/mit-license.php MIT

                                      +
                                      + +
                                      +
                                      + category +
                                      +
                                      + +

                                      exceptions

                                      +
                                      + +
                                      +
                                      + see +
                                      +
                                      + https://github.com/sshilko/php-sql-mydb + + +
                                      +
                                      + + + +

                                      + Table of Contents + + +

                                      + + + + + + + + + + + + + + + + + + + +
                                      +
                                      +
                                      +
                                      +
                                      
                                      +        
                                      + +
                                      +
                                      + + + +
                                      +
                                      +
                                      + +
                                      + On this page + +
                                        +
                                      • Table Of Contents
                                      • +
                                      • +
                                          +
                                        +
                                      • + + +
                                      +
                                      + +
                                      +
                                      +
                                      +
                                      +
                                      +

                                      Search results

                                      + +
                                      +
                                      +
                                        +
                                        +
                                        +
                                        +
                                        + + +
                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-DeleteException.html b/php/phpdoc/classes/sql-MydbException-DeleteException.html new file mode 100644 index 00000000000..9ef16f97513 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-DeleteException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                        +

                                        phpDocumentor

                                        + + + + + +
                                        + +
                                        +
                                        + + + + +
                                        +
                                        + + +
                                        +

                                        + DeleteException + + + extends MydbException + + +
                                        + in package + +
                                        + + +

                                        + +
                                        + + +
                                        + + + + + + +
                                        + Tags + + +
                                        +
                                        +
                                        + author +
                                        +
                                        + +

                                        Sergei Shilko contact@sshilko.com

                                        +
                                        + +
                                        +
                                        + license +
                                        +
                                        + +

                                        https://opensource.org/licenses/mit-license.php MIT

                                        +
                                        + +
                                        +
                                        + category +
                                        +
                                        + +

                                        exceptions

                                        +
                                        + +
                                        +
                                        + see +
                                        +
                                        + https://github.com/sshilko/php-sql-mydb + + +
                                        +
                                        + + + +

                                        + Table of Contents + + +

                                        + + + + + + + + + + + + + + + + + + + +
                                        +
                                        +
                                        +
                                        +
                                        
                                        +        
                                        + +
                                        +
                                        + + + +
                                        +
                                        +
                                        + +
                                        + On this page + +
                                          +
                                        • Table Of Contents
                                        • +
                                        • +
                                            +
                                          +
                                        • + + +
                                        +
                                        + +
                                        +
                                        +
                                        +
                                        +
                                        +

                                        Search results

                                        + +
                                        +
                                        +
                                          +
                                          +
                                          +
                                          +
                                          + + +
                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-DisconnectException.html b/php/phpdoc/classes/sql-MydbException-DisconnectException.html new file mode 100644 index 00000000000..1e52781b388 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-DisconnectException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                          +

                                          phpDocumentor

                                          + + + + + +
                                          + +
                                          +
                                          + + + + +
                                          +
                                          + + +
                                          +

                                          + DisconnectException + + + extends MydbException + + +
                                          + in package + +
                                          + + +

                                          + +
                                          + + +
                                          + + + + + + +
                                          + Tags + + +
                                          +
                                          +
                                          + author +
                                          +
                                          + +

                                          Sergei Shilko contact@sshilko.com

                                          +
                                          + +
                                          +
                                          + license +
                                          +
                                          + +

                                          https://opensource.org/licenses/mit-license.php MIT

                                          +
                                          + +
                                          +
                                          + category +
                                          +
                                          + +

                                          exceptions

                                          +
                                          + +
                                          +
                                          + see +
                                          +
                                          + https://github.com/sshilko/php-sql-mydb + + +
                                          +
                                          + + + +

                                          + Table of Contents + + +

                                          + + + + + + + + + + + + + + + + + + + +
                                          +
                                          +
                                          +
                                          +
                                          
                                          +        
                                          + +
                                          +
                                          + + + +
                                          +
                                          +
                                          + +
                                          + On this page + +
                                            +
                                          • Table Of Contents
                                          • +
                                          • +
                                              +
                                            +
                                          • + + +
                                          +
                                          + +
                                          +
                                          +
                                          +
                                          +
                                          +

                                          Search results

                                          + +
                                          +
                                          +
                                            +
                                            +
                                            +
                                            +
                                            + + +
                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-EnvironmentException.html b/php/phpdoc/classes/sql-MydbException-EnvironmentException.html new file mode 100644 index 00000000000..3d04918aa7c --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-EnvironmentException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                            +

                                            phpDocumentor

                                            + + + + + +
                                            + +
                                            +
                                            + + + + +
                                            +
                                            + + +
                                            +

                                            + EnvironmentException + + + extends MydbException + + +
                                            + in package + +
                                            + + +

                                            + +
                                            + + +
                                            + + + + + + +
                                            + Tags + + +
                                            +
                                            +
                                            + author +
                                            +
                                            + +

                                            Sergei Shilko contact@sshilko.com

                                            +
                                            + +
                                            +
                                            + license +
                                            +
                                            + +

                                            https://opensource.org/licenses/mit-license.php MIT

                                            +
                                            + +
                                            +
                                            + category +
                                            +
                                            + +

                                            exceptions

                                            +
                                            + +
                                            +
                                            + see +
                                            +
                                            + https://github.com/sshilko/php-sql-mydb + + +
                                            +
                                            + + + +

                                            + Table of Contents + + +

                                            + + + + + + + + + + + + + + + + + + + +
                                            +
                                            +
                                            +
                                            +
                                            
                                            +        
                                            + +
                                            +
                                            + + + +
                                            +
                                            +
                                            + +
                                            + On this page + +
                                              +
                                            • Table Of Contents
                                            • +
                                            • +
                                                +
                                              +
                                            • + + +
                                            +
                                            + +
                                            +
                                            +
                                            +
                                            +
                                            +

                                            Search results

                                            + +
                                            +
                                            +
                                              +
                                              +
                                              +
                                              +
                                              + + +
                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-EventException.html b/php/phpdoc/classes/sql-MydbException-EventException.html new file mode 100644 index 00000000000..e863431cd42 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-EventException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                              +

                                              phpDocumentor

                                              + + + + + +
                                              + +
                                              +
                                              + + + + +
                                              +
                                              + + +
                                              +

                                              + EventException + + + extends MydbException + + +
                                              + in package + +
                                              + + +

                                              + +
                                              + + +
                                              + + + + + + +
                                              + Tags + + +
                                              +
                                              +
                                              + author +
                                              +
                                              + +

                                              Sergei Shilko contact@sshilko.com

                                              +
                                              + +
                                              +
                                              + license +
                                              +
                                              + +

                                              https://opensource.org/licenses/mit-license.php MIT

                                              +
                                              + +
                                              +
                                              + category +
                                              +
                                              + +

                                              exceptions

                                              +
                                              + +
                                              +
                                              + see +
                                              +
                                              + https://github.com/sshilko/php-sql-mydb + + +
                                              +
                                              + + + +

                                              + Table of Contents + + +

                                              + + + + + + + + + + + + + + + + + + + +
                                              +
                                              +
                                              +
                                              +
                                              
                                              +        
                                              + +
                                              +
                                              + + + +
                                              +
                                              +
                                              + +
                                              + On this page + +
                                                +
                                              • Table Of Contents
                                              • +
                                              • +
                                                  +
                                                +
                                              • + + +
                                              +
                                              + +
                                              +
                                              +
                                              +
                                              +
                                              +

                                              Search results

                                              + +
                                              +
                                              +
                                                +
                                                +
                                                +
                                                +
                                                + + +
                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-InternalException.html b/php/phpdoc/classes/sql-MydbException-InternalException.html new file mode 100644 index 00000000000..939d27ec3dc --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-InternalException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                +

                                                phpDocumentor

                                                + + + + + +
                                                + +
                                                +
                                                + + + + +
                                                +
                                                + + +
                                                +

                                                + InternalException + + + extends MydbException + + +
                                                + in package + +
                                                + + +

                                                + +
                                                + + +
                                                + + + + + + +
                                                + Tags + + +
                                                +
                                                +
                                                + author +
                                                +
                                                + +

                                                Sergei Shilko contact@sshilko.com

                                                +
                                                + +
                                                +
                                                + license +
                                                +
                                                + +

                                                https://opensource.org/licenses/mit-license.php MIT

                                                +
                                                + +
                                                +
                                                + category +
                                                +
                                                + +

                                                exceptions

                                                +
                                                + +
                                                +
                                                + see +
                                                +
                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                +
                                                + + + +

                                                + Table of Contents + + +

                                                + + + + + + + + + + + + + + + + + + + +
                                                +
                                                +
                                                +
                                                +
                                                
                                                +        
                                                + +
                                                +
                                                + + + +
                                                +
                                                +
                                                + +
                                                + On this page + +
                                                  +
                                                • Table Of Contents
                                                • +
                                                • +
                                                    +
                                                  +
                                                • + + +
                                                +
                                                + +
                                                +
                                                +
                                                +
                                                +
                                                +

                                                Search results

                                                + +
                                                +
                                                +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  + + +
                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-LoggerException.html b/php/phpdoc/classes/sql-MydbException-LoggerException.html new file mode 100644 index 00000000000..a3e038b9d61 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-LoggerException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                  +

                                                  phpDocumentor

                                                  + + + + + +
                                                  + +
                                                  +
                                                  + + + + +
                                                  +
                                                  + + +
                                                  +

                                                  + LoggerException + + + extends MydbException + + +
                                                  + in package + +
                                                  + + +

                                                  + +
                                                  + + +
                                                  + + + + + + +
                                                  + Tags + + +
                                                  +
                                                  +
                                                  + author +
                                                  +
                                                  + +

                                                  Sergei Shilko contact@sshilko.com

                                                  +
                                                  + +
                                                  +
                                                  + license +
                                                  +
                                                  + +

                                                  https://opensource.org/licenses/mit-license.php MIT

                                                  +
                                                  + +
                                                  +
                                                  + category +
                                                  +
                                                  + +

                                                  exceptions

                                                  +
                                                  + +
                                                  +
                                                  + see +
                                                  +
                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                  +
                                                  + + + +

                                                  + Table of Contents + + +

                                                  + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  
                                                  +        
                                                  + +
                                                  +
                                                  + + + +
                                                  +
                                                  +
                                                  + +
                                                  + On this page + +
                                                    +
                                                  • Table Of Contents
                                                  • +
                                                  • +
                                                      +
                                                    +
                                                  • + + +
                                                  +
                                                  + +
                                                  +
                                                  +
                                                  +
                                                  +
                                                  +

                                                  Search results

                                                  + +
                                                  +
                                                  +
                                                    +
                                                    +
                                                    +
                                                    +
                                                    + + +
                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-OptionException.html b/php/phpdoc/classes/sql-MydbException-OptionException.html new file mode 100644 index 00000000000..2e01e2ea873 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-OptionException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                    +

                                                    phpDocumentor

                                                    + + + + + +
                                                    + +
                                                    +
                                                    + + + + +
                                                    +
                                                    + + +
                                                    +

                                                    + OptionException + + + extends MydbException + + +
                                                    + in package + +
                                                    + + +

                                                    + +
                                                    + + +
                                                    + + + + + + +
                                                    + Tags + + +
                                                    +
                                                    +
                                                    + author +
                                                    +
                                                    + +

                                                    Sergei Shilko contact@sshilko.com

                                                    +
                                                    + +
                                                    +
                                                    + license +
                                                    +
                                                    + +

                                                    https://opensource.org/licenses/mit-license.php MIT

                                                    +
                                                    + +
                                                    +
                                                    + category +
                                                    +
                                                    + +

                                                    exceptions

                                                    +
                                                    + +
                                                    +
                                                    + see +
                                                    +
                                                    + https://github.com/sshilko/php-sql-mydb + + +
                                                    +
                                                    + + + +

                                                    + Table of Contents + + +

                                                    + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    +
                                                    +
                                                    +
                                                    
                                                    +        
                                                    + +
                                                    +
                                                    + + + +
                                                    +
                                                    +
                                                    + +
                                                    + On this page + +
                                                      +
                                                    • Table Of Contents
                                                    • +
                                                    • +
                                                        +
                                                      +
                                                    • + + +
                                                    +
                                                    + +
                                                    +
                                                    +
                                                    +
                                                    +
                                                    +

                                                    Search results

                                                    + +
                                                    +
                                                    +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      + + +
                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-QueryBuilderEscapeException.html b/php/phpdoc/classes/sql-MydbException-QueryBuilderEscapeException.html new file mode 100644 index 00000000000..0d67d37687a --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-QueryBuilderEscapeException.html @@ -0,0 +1,489 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                      +

                                                      phpDocumentor

                                                      + + + + + +
                                                      + +
                                                      +
                                                      + + + + +
                                                      +
                                                      + + +
                                                      +

                                                      + QueryBuilderEscapeException + + + extends MydbException + + +
                                                      + in package + +
                                                      + + +

                                                      + +
                                                      + + +
                                                      + + + + + + +
                                                      + Tags + + +
                                                      +
                                                      +
                                                      + author +
                                                      +
                                                      + +

                                                      Sergei Shilko contact@sshilko.com

                                                      +
                                                      + +
                                                      +
                                                      + license +
                                                      +
                                                      + +

                                                      https://opensource.org/licenses/mit-license.php MIT

                                                      +
                                                      + +
                                                      +
                                                      + category +
                                                      +
                                                      + +

                                                      exceptions

                                                      +
                                                      + +
                                                      +
                                                      + see +
                                                      +
                                                      + https://github.com/sshilko/php-sql-mydb + + +
                                                      +
                                                      + + + +

                                                      + Table of Contents + + +

                                                      + + + + + + + +

                                                      + Constants + + +

                                                      +
                                                      +
                                                      + MESSAGE_TEMPLATE + +  = 'Failed to escape value: %s' +
                                                      + +
                                                      + + + +

                                                      + Methods + + +

                                                      +
                                                      +
                                                      + __construct() + +  : mixed +
                                                      + +
                                                      + + + + + +
                                                      +

                                                      + Constants + + +

                                                      +
                                                      +

                                                      + MESSAGE_TEMPLATE + + +

                                                      + + + + + + protected + mixed + MESSAGE_TEMPLATE + = 'Failed to escape value: %s' + + + + + + + +
                                                      +
                                                      + + + +
                                                      +

                                                      + Methods + + +

                                                      +
                                                      +

                                                      + __construct() + + +

                                                      + + + + + public + __construct([string $message = "" ][, int $code = 0 ][, Throwable|null $previous = null ]) : mixed + +
                                                      +
                                                      + +
                                                      Parameters
                                                      +
                                                      +
                                                      + $message + : string + = ""
                                                      +
                                                      + +
                                                      +
                                                      + $code + : int + = 0
                                                      +
                                                      + +
                                                      +
                                                      + $previous + : Throwable|null + = null
                                                      +
                                                      + +
                                                      +
                                                      + + + + +
                                                      +
                                                      + +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      
                                                      +        
                                                      + +
                                                      +
                                                      + + + +
                                                      +
                                                      +
                                                      + +
                                                      + On this page + + +
                                                      + +
                                                      +
                                                      +
                                                      +
                                                      +
                                                      +

                                                      Search results

                                                      + +
                                                      +
                                                      +
                                                        +
                                                        +
                                                        +
                                                        +
                                                        + + +
                                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-QueryBuilderException.html b/php/phpdoc/classes/sql-MydbException-QueryBuilderException.html new file mode 100644 index 00000000000..8d706f4e8c3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-QueryBuilderException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                        +

                                                        phpDocumentor

                                                        + + + + + +
                                                        + +
                                                        +
                                                        + + + + +
                                                        +
                                                        + + +
                                                        +

                                                        + QueryBuilderException + + + extends MydbException + + +
                                                        + in package + +
                                                        + + +

                                                        + +
                                                        + + +
                                                        + + + + + + +
                                                        + Tags + + +
                                                        +
                                                        +
                                                        + author +
                                                        +
                                                        + +

                                                        Sergei Shilko contact@sshilko.com

                                                        +
                                                        + +
                                                        +
                                                        + license +
                                                        +
                                                        + +

                                                        https://opensource.org/licenses/mit-license.php MIT

                                                        +
                                                        + +
                                                        +
                                                        + category +
                                                        +
                                                        + +

                                                        exceptions

                                                        +
                                                        + +
                                                        +
                                                        + see +
                                                        +
                                                        + https://github.com/sshilko/php-sql-mydb + + +
                                                        +
                                                        + + + +

                                                        + Table of Contents + + +

                                                        + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        +
                                                        +
                                                        +
                                                        
                                                        +        
                                                        + +
                                                        +
                                                        + + + +
                                                        +
                                                        +
                                                        + +
                                                        + On this page + +
                                                          +
                                                        • Table Of Contents
                                                        • +
                                                        • +
                                                            +
                                                          +
                                                        • + + +
                                                        +
                                                        + +
                                                        +
                                                        +
                                                        +
                                                        +
                                                        +

                                                        Search results

                                                        + +
                                                        +
                                                        +
                                                          +
                                                          +
                                                          +
                                                          +
                                                          + + +
                                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-RegistryException.html b/php/phpdoc/classes/sql-MydbException-RegistryException.html new file mode 100644 index 00000000000..1053b1b89c2 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-RegistryException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                          +

                                                          phpDocumentor

                                                          + + + + + +
                                                          + +
                                                          +
                                                          + + + + +
                                                          +
                                                          + + +
                                                          +

                                                          + RegistryException + + + extends MydbException + + +
                                                          + in package + +
                                                          + + +

                                                          + +
                                                          + + +
                                                          + + + + + + +
                                                          + Tags + + +
                                                          +
                                                          +
                                                          + author +
                                                          +
                                                          + +

                                                          Sergei Shilko contact@sshilko.com

                                                          +
                                                          + +
                                                          +
                                                          + license +
                                                          +
                                                          + +

                                                          https://opensource.org/licenses/mit-license.php MIT

                                                          +
                                                          + +
                                                          +
                                                          + category +
                                                          +
                                                          + +

                                                          exceptions

                                                          +
                                                          + +
                                                          +
                                                          + see +
                                                          +
                                                          + https://github.com/sshilko/php-sql-mydb + + +
                                                          +
                                                          + + + +

                                                          + Table of Contents + + +

                                                          + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          +
                                                          +
                                                          +
                                                          
                                                          +        
                                                          + +
                                                          +
                                                          + + + +
                                                          +
                                                          +
                                                          + +
                                                          + On this page + +
                                                            +
                                                          • Table Of Contents
                                                          • +
                                                          • +
                                                              +
                                                            +
                                                          • + + +
                                                          +
                                                          + +
                                                          +
                                                          +
                                                          +
                                                          +
                                                          +

                                                          Search results

                                                          + +
                                                          +
                                                          +
                                                            +
                                                            +
                                                            +
                                                            +
                                                            + + +
                                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-ServerGoneException.html b/php/phpdoc/classes/sql-MydbException-ServerGoneException.html new file mode 100644 index 00000000000..3176eab2f02 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-ServerGoneException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                            +

                                                            phpDocumentor

                                                            + + + + + +
                                                            + +
                                                            +
                                                            + + + + +
                                                            +
                                                            + + +
                                                            +

                                                            + ServerGoneException + + + extends MydbException + + +
                                                            + in package + +
                                                            + + +

                                                            + +
                                                            + + +
                                                            + + + + + + +
                                                            + Tags + + +
                                                            +
                                                            +
                                                            + author +
                                                            +
                                                            + +

                                                            Sergei Shilko contact@sshilko.com

                                                            +
                                                            + +
                                                            +
                                                            + license +
                                                            +
                                                            + +

                                                            https://opensource.org/licenses/mit-license.php MIT

                                                            +
                                                            + +
                                                            +
                                                            + category +
                                                            +
                                                            + +

                                                            exceptions

                                                            +
                                                            + +
                                                            +
                                                            + see +
                                                            +
                                                            + https://github.com/sshilko/php-sql-mydb + + +
                                                            +
                                                            + + + +

                                                            + Table of Contents + + +

                                                            + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            +
                                                            +
                                                            +
                                                            
                                                            +        
                                                            + +
                                                            +
                                                            + + + +
                                                            +
                                                            +
                                                            + +
                                                            + On this page + +
                                                              +
                                                            • Table Of Contents
                                                            • +
                                                            • +
                                                                +
                                                              +
                                                            • + + +
                                                            +
                                                            + +
                                                            +
                                                            +
                                                            +
                                                            +
                                                            +

                                                            Search results

                                                            + +
                                                            +
                                                            +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              + + +
                                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TerminationSignalException.html b/php/phpdoc/classes/sql-MydbException-TerminationSignalException.html new file mode 100644 index 00000000000..c9bf78b690e --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TerminationSignalException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                              +

                                                              phpDocumentor

                                                              + + + + + +
                                                              + +
                                                              +
                                                              + + + + +
                                                              +
                                                              + + +
                                                              +

                                                              + TerminationSignalException + + + extends MydbException + + +
                                                              + in package + +
                                                              + + +

                                                              + +
                                                              + + +
                                                              + + + + + + +
                                                              + Tags + + +
                                                              +
                                                              +
                                                              + author +
                                                              +
                                                              + +

                                                              Sergei Shilko contact@sshilko.com

                                                              +
                                                              + +
                                                              +
                                                              + license +
                                                              +
                                                              + +

                                                              https://opensource.org/licenses/mit-license.php MIT

                                                              +
                                                              + +
                                                              +
                                                              + category +
                                                              +
                                                              + +

                                                              exceptions

                                                              +
                                                              + +
                                                              +
                                                              + see +
                                                              +
                                                              + https://github.com/sshilko/php-sql-mydb + + +
                                                              +
                                                              + + + +

                                                              + Table of Contents + + +

                                                              + + + + + + + + + + + + + + + + + + + +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              
                                                              +        
                                                              + +
                                                              +
                                                              + + + +
                                                              +
                                                              +
                                                              + +
                                                              + On this page + +
                                                                +
                                                              • Table Of Contents
                                                              • +
                                                              • +
                                                                  +
                                                                +
                                                              • + + +
                                                              +
                                                              + +
                                                              +
                                                              +
                                                              +
                                                              +
                                                              +

                                                              Search results

                                                              + +
                                                              +
                                                              +
                                                                +
                                                                +
                                                                +
                                                                +
                                                                + + +
                                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionAutocommitException.html b/php/phpdoc/classes/sql-MydbException-TransactionAutocommitException.html new file mode 100644 index 00000000000..8ef0481439a --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionAutocommitException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                +

                                                                phpDocumentor

                                                                + + + + + +
                                                                + +
                                                                +
                                                                + + + + +
                                                                +
                                                                + + +
                                                                +

                                                                + TransactionAutocommitException + + + extends MydbException + + +
                                                                + in package + +
                                                                + + +

                                                                + +
                                                                + + +
                                                                + + + + + + +
                                                                + Tags + + +
                                                                +
                                                                +
                                                                + author +
                                                                +
                                                                + +

                                                                Sergei Shilko contact@sshilko.com

                                                                +
                                                                + +
                                                                +
                                                                + license +
                                                                +
                                                                + +

                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                +
                                                                + +
                                                                +
                                                                + category +
                                                                +
                                                                + +

                                                                exceptions

                                                                +
                                                                + +
                                                                +
                                                                + see +
                                                                +
                                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                                +
                                                                + + + +

                                                                + Table of Contents + + +

                                                                + + + + + + + + + + + + + + + + + + + +
                                                                +
                                                                +
                                                                +
                                                                +
                                                                
                                                                +        
                                                                + +
                                                                +
                                                                + + + +
                                                                +
                                                                +
                                                                + +
                                                                + On this page + +
                                                                  +
                                                                • Table Of Contents
                                                                • +
                                                                • +
                                                                    +
                                                                  +
                                                                • + + +
                                                                +
                                                                + +
                                                                +
                                                                +
                                                                +
                                                                +
                                                                +

                                                                Search results

                                                                + +
                                                                +
                                                                +
                                                                  +
                                                                  +
                                                                  +
                                                                  +
                                                                  + + +
                                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionBeginException.html b/php/phpdoc/classes/sql-MydbException-TransactionBeginException.html new file mode 100644 index 00000000000..678da24a2a4 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionBeginException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                  +

                                                                  phpDocumentor

                                                                  + + + + + +
                                                                  + +
                                                                  +
                                                                  + + + + +
                                                                  +
                                                                  + + +
                                                                  +

                                                                  + TransactionBeginException + + + extends MydbException + + +
                                                                  + in package + +
                                                                  + + +

                                                                  + +
                                                                  + + +
                                                                  + + + + + + +
                                                                  + Tags + + +
                                                                  +
                                                                  +
                                                                  + author +
                                                                  +
                                                                  + +

                                                                  Sergei Shilko contact@sshilko.com

                                                                  +
                                                                  + +
                                                                  +
                                                                  + license +
                                                                  +
                                                                  + +

                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                  +
                                                                  + +
                                                                  +
                                                                  + category +
                                                                  +
                                                                  + +

                                                                  exceptions

                                                                  +
                                                                  + +
                                                                  +
                                                                  + see +
                                                                  +
                                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                                  +
                                                                  + + + +

                                                                  + Table of Contents + + +

                                                                  + + + + + + + + + + + + + + + + + + + +
                                                                  +
                                                                  +
                                                                  +
                                                                  +
                                                                  
                                                                  +        
                                                                  + +
                                                                  +
                                                                  + + + +
                                                                  +
                                                                  +
                                                                  + +
                                                                  + On this page + +
                                                                    +
                                                                  • Table Of Contents
                                                                  • +
                                                                  • +
                                                                      +
                                                                    +
                                                                  • + + +
                                                                  +
                                                                  + +
                                                                  +
                                                                  +
                                                                  +
                                                                  +
                                                                  +

                                                                  Search results

                                                                  + +
                                                                  +
                                                                  +
                                                                    +
                                                                    +
                                                                    +
                                                                    +
                                                                    + + +
                                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionBeginReadonlyException.html b/php/phpdoc/classes/sql-MydbException-TransactionBeginReadonlyException.html new file mode 100644 index 00000000000..55c9f6893c0 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionBeginReadonlyException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                    +

                                                                    phpDocumentor

                                                                    + + + + + +
                                                                    + +
                                                                    +
                                                                    + + + + +
                                                                    +
                                                                    + + +
                                                                    +

                                                                    + TransactionBeginReadonlyException + + + extends TransactionBeginException + + +
                                                                    + in package + +
                                                                    + + +

                                                                    + +
                                                                    + + +
                                                                    + + + + + + +
                                                                    + Tags + + +
                                                                    +
                                                                    +
                                                                    + author +
                                                                    +
                                                                    + +

                                                                    Sergei Shilko contact@sshilko.com

                                                                    +
                                                                    + +
                                                                    +
                                                                    + license +
                                                                    +
                                                                    + +

                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                    +
                                                                    + +
                                                                    +
                                                                    + category +
                                                                    +
                                                                    + +

                                                                    exceptions

                                                                    +
                                                                    + +
                                                                    +
                                                                    + see +
                                                                    +
                                                                    + https://github.com/sshilko/php-sql-mydb + + +
                                                                    +
                                                                    + + + +

                                                                    + Table of Contents + + +

                                                                    + + + + + + + + + + + + + + + + + + + +
                                                                    +
                                                                    +
                                                                    +
                                                                    +
                                                                    
                                                                    +        
                                                                    + +
                                                                    +
                                                                    + + + +
                                                                    +
                                                                    +
                                                                    + +
                                                                    + On this page + +
                                                                      +
                                                                    • Table Of Contents
                                                                    • +
                                                                    • +
                                                                        +
                                                                      +
                                                                    • + + +
                                                                    +
                                                                    + +
                                                                    +
                                                                    +
                                                                    +
                                                                    +
                                                                    +

                                                                    Search results

                                                                    + +
                                                                    +
                                                                    +
                                                                      +
                                                                      +
                                                                      +
                                                                      +
                                                                      + + +
                                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionBeginReadwriteException.html b/php/phpdoc/classes/sql-MydbException-TransactionBeginReadwriteException.html new file mode 100644 index 00000000000..9dacfbb50c3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionBeginReadwriteException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                      +

                                                                      phpDocumentor

                                                                      + + + + + +
                                                                      + +
                                                                      +
                                                                      + + + + +
                                                                      +
                                                                      + + +
                                                                      +

                                                                      + TransactionBeginReadwriteException + + + extends TransactionBeginException + + +
                                                                      + in package + +
                                                                      + + +

                                                                      + +
                                                                      + + +
                                                                      + + + + + + +
                                                                      + Tags + + +
                                                                      +
                                                                      +
                                                                      + author +
                                                                      +
                                                                      + +

                                                                      Sergei Shilko contact@sshilko.com

                                                                      +
                                                                      + +
                                                                      +
                                                                      + license +
                                                                      +
                                                                      + +

                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                      +
                                                                      + +
                                                                      +
                                                                      + category +
                                                                      +
                                                                      + +

                                                                      exceptions

                                                                      +
                                                                      + +
                                                                      +
                                                                      + see +
                                                                      +
                                                                      + https://github.com/sshilko/php-sql-mydb + + +
                                                                      +
                                                                      + + + +

                                                                      + Table of Contents + + +

                                                                      + + + + + + + + + + + + + + + + + + + +
                                                                      +
                                                                      +
                                                                      +
                                                                      +
                                                                      
                                                                      +        
                                                                      + +
                                                                      +
                                                                      + + + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      + On this page + +
                                                                        +
                                                                      • Table Of Contents
                                                                      • +
                                                                      • +
                                                                          +
                                                                        +
                                                                      • + + +
                                                                      +
                                                                      + +
                                                                      +
                                                                      +
                                                                      +
                                                                      +
                                                                      +

                                                                      Search results

                                                                      + +
                                                                      +
                                                                      +
                                                                        +
                                                                        +
                                                                        +
                                                                        +
                                                                        + + +
                                                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionCommitException.html b/php/phpdoc/classes/sql-MydbException-TransactionCommitException.html new file mode 100644 index 00000000000..67044c6db5b --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionCommitException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                        +

                                                                        phpDocumentor

                                                                        + + + + + +
                                                                        + +
                                                                        +
                                                                        + + + + +
                                                                        +
                                                                        + + +
                                                                        +

                                                                        + TransactionCommitException + + + extends MydbException + + +
                                                                        + in package + +
                                                                        + + +

                                                                        + +
                                                                        + + +
                                                                        + + + + + + +
                                                                        + Tags + + +
                                                                        +
                                                                        +
                                                                        + author +
                                                                        +
                                                                        + +

                                                                        Sergei Shilko contact@sshilko.com

                                                                        +
                                                                        + +
                                                                        +
                                                                        + license +
                                                                        +
                                                                        + +

                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                        +
                                                                        + +
                                                                        +
                                                                        + category +
                                                                        +
                                                                        + +

                                                                        exceptions

                                                                        +
                                                                        + +
                                                                        +
                                                                        + see +
                                                                        +
                                                                        + https://github.com/sshilko/php-sql-mydb + + +
                                                                        +
                                                                        + + + +

                                                                        + Table of Contents + + +

                                                                        + + + + + + + + + + + + + + + + + + + +
                                                                        +
                                                                        +
                                                                        +
                                                                        +
                                                                        
                                                                        +        
                                                                        + +
                                                                        +
                                                                        + + + +
                                                                        +
                                                                        +
                                                                        + +
                                                                        + On this page + +
                                                                          +
                                                                        • Table Of Contents
                                                                        • +
                                                                        • +
                                                                            +
                                                                          +
                                                                        • + + +
                                                                        +
                                                                        + +
                                                                        +
                                                                        +
                                                                        +
                                                                        +
                                                                        +

                                                                        Search results

                                                                        + +
                                                                        +
                                                                        +
                                                                          +
                                                                          +
                                                                          +
                                                                          +
                                                                          + + +
                                                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionIsolationException.html b/php/phpdoc/classes/sql-MydbException-TransactionIsolationException.html new file mode 100644 index 00000000000..d40da897af3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionIsolationException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                          +

                                                                          phpDocumentor

                                                                          + + + + + +
                                                                          + +
                                                                          +
                                                                          + + + + +
                                                                          +
                                                                          + + +
                                                                          +

                                                                          + TransactionIsolationException + + + extends TransactionBeginException + + +
                                                                          + in package + +
                                                                          + + +

                                                                          + +
                                                                          + + +
                                                                          + + + + + + +
                                                                          + Tags + + +
                                                                          +
                                                                          +
                                                                          + author +
                                                                          +
                                                                          + +

                                                                          Sergei Shilko contact@sshilko.com

                                                                          +
                                                                          + +
                                                                          +
                                                                          + license +
                                                                          +
                                                                          + +

                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                          +
                                                                          + +
                                                                          +
                                                                          + category +
                                                                          +
                                                                          + +

                                                                          exceptions

                                                                          +
                                                                          + +
                                                                          +
                                                                          + see +
                                                                          +
                                                                          + https://github.com/sshilko/php-sql-mydb + + +
                                                                          +
                                                                          + + + +

                                                                          + Table of Contents + + +

                                                                          + + + + + + + + + + + + + + + + + + + +
                                                                          +
                                                                          +
                                                                          +
                                                                          +
                                                                          
                                                                          +        
                                                                          + +
                                                                          +
                                                                          + + + +
                                                                          +
                                                                          +
                                                                          + +
                                                                          + On this page + +
                                                                            +
                                                                          • Table Of Contents
                                                                          • +
                                                                          • +
                                                                              +
                                                                            +
                                                                          • + + +
                                                                          +
                                                                          + +
                                                                          +
                                                                          +
                                                                          +
                                                                          +
                                                                          +

                                                                          Search results

                                                                          + +
                                                                          +
                                                                          +
                                                                            +
                                                                            +
                                                                            +
                                                                            +
                                                                            + + +
                                                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-TransactionRollbackException.html b/php/phpdoc/classes/sql-MydbException-TransactionRollbackException.html new file mode 100644 index 00000000000..ab604181f58 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-TransactionRollbackException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                            +

                                                                            phpDocumentor

                                                                            + + + + + +
                                                                            + +
                                                                            +
                                                                            + + + + +
                                                                            +
                                                                            + + +
                                                                            +

                                                                            + TransactionRollbackException + + + extends MydbException + + +
                                                                            + in package + +
                                                                            + + +

                                                                            + +
                                                                            + + +
                                                                            + + + + + + +
                                                                            + Tags + + +
                                                                            +
                                                                            +
                                                                            + author +
                                                                            +
                                                                            + +

                                                                            Sergei Shilko contact@sshilko.com

                                                                            +
                                                                            + +
                                                                            +
                                                                            + license +
                                                                            +
                                                                            + +

                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                            +
                                                                            + +
                                                                            +
                                                                            + category +
                                                                            +
                                                                            + +

                                                                            exceptions

                                                                            +
                                                                            + +
                                                                            +
                                                                            + see +
                                                                            +
                                                                            + https://github.com/sshilko/php-sql-mydb + + +
                                                                            +
                                                                            + + + +

                                                                            + Table of Contents + + +

                                                                            + + + + + + + + + + + + + + + + + + + +
                                                                            +
                                                                            +
                                                                            +
                                                                            +
                                                                            
                                                                            +        
                                                                            + +
                                                                            +
                                                                            + + + +
                                                                            +
                                                                            +
                                                                            + +
                                                                            + On this page + +
                                                                              +
                                                                            • Table Of Contents
                                                                            • +
                                                                            • +
                                                                                +
                                                                              +
                                                                            • + + +
                                                                            +
                                                                            + +
                                                                            +
                                                                            +
                                                                            +
                                                                            +
                                                                            +

                                                                            Search results

                                                                            + +
                                                                            +
                                                                            +
                                                                              +
                                                                              +
                                                                              +
                                                                              +
                                                                              + + +
                                                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException-UpdateException.html b/php/phpdoc/classes/sql-MydbException-UpdateException.html new file mode 100644 index 00000000000..92c82d6c2d9 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException-UpdateException.html @@ -0,0 +1,352 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                              +

                                                                              phpDocumentor

                                                                              + + + + + +
                                                                              + +
                                                                              +
                                                                              + + + + +
                                                                              +
                                                                              + + +
                                                                              +

                                                                              + UpdateException + + + extends MydbException + + +
                                                                              + in package + +
                                                                              + + +

                                                                              + +
                                                                              + + +
                                                                              + + + + + + +
                                                                              + Tags + + +
                                                                              +
                                                                              +
                                                                              + author +
                                                                              +
                                                                              + +

                                                                              Sergei Shilko contact@sshilko.com

                                                                              +
                                                                              + +
                                                                              +
                                                                              + license +
                                                                              +
                                                                              + +

                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                              +
                                                                              + +
                                                                              +
                                                                              + category +
                                                                              +
                                                                              + +

                                                                              exceptions

                                                                              +
                                                                              + +
                                                                              +
                                                                              + see +
                                                                              +
                                                                              + https://github.com/sshilko/php-sql-mydb + + +
                                                                              +
                                                                              + + + +

                                                                              + Table of Contents + + +

                                                                              + + + + + + + + + + + + + + + + + + + +
                                                                              +
                                                                              +
                                                                              +
                                                                              +
                                                                              
                                                                              +        
                                                                              + +
                                                                              +
                                                                              + + + +
                                                                              +
                                                                              +
                                                                              + +
                                                                              + On this page + +
                                                                                +
                                                                              • Table Of Contents
                                                                              • +
                                                                              • +
                                                                                  +
                                                                                +
                                                                              • + + +
                                                                              +
                                                                              + +
                                                                              +
                                                                              +
                                                                              +
                                                                              +
                                                                              +

                                                                              Search results

                                                                              + +
                                                                              +
                                                                              +
                                                                                +
                                                                                +
                                                                                +
                                                                                +
                                                                                + + +
                                                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbException.html b/php/phpdoc/classes/sql-MydbException.html new file mode 100644 index 00000000000..3de00ff7509 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbException.html @@ -0,0 +1,342 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                +

                                                                                phpDocumentor

                                                                                + + + + + +
                                                                                + +
                                                                                +
                                                                                + + + + +
                                                                                +
                                                                                + + +
                                                                                +

                                                                                + MydbException + + + extends Exception + + +
                                                                                + in package + +
                                                                                + + +

                                                                                + +
                                                                                + + +
                                                                                + + + + + + +
                                                                                + Tags + + +
                                                                                +
                                                                                +
                                                                                + author +
                                                                                +
                                                                                + +

                                                                                Sergei Shilko contact@sshilko.com

                                                                                +
                                                                                + +
                                                                                +
                                                                                + license +
                                                                                +
                                                                                + +

                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                +
                                                                                + +
                                                                                +
                                                                                + see +
                                                                                +
                                                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                                                +
                                                                                + + + +

                                                                                + Table of Contents + + +

                                                                                + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                +
                                                                                +
                                                                                +
                                                                                
                                                                                +        
                                                                                + +
                                                                                +
                                                                                + + + +
                                                                                +
                                                                                +
                                                                                + +
                                                                                + On this page + +
                                                                                  +
                                                                                • Table Of Contents
                                                                                • +
                                                                                • +
                                                                                    +
                                                                                  +
                                                                                • + + +
                                                                                +
                                                                                + +
                                                                                +
                                                                                +
                                                                                +
                                                                                +
                                                                                +

                                                                                Search results

                                                                                + +
                                                                                +
                                                                                +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  + + +
                                                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbExpression.html b/php/phpdoc/classes/sql-MydbExpression.html new file mode 100644 index 00000000000..9b34306bfb7 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbExpression.html @@ -0,0 +1,521 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +

                                                                                  phpDocumentor

                                                                                  + + + + + +
                                                                                  + +
                                                                                  +
                                                                                  + + + + +
                                                                                  +
                                                                                  + + +
                                                                                  +

                                                                                  + MydbExpression + + +
                                                                                  + in package + +
                                                                                  + + + implements + MydbExpressionInterface + +

                                                                                  + +
                                                                                  + + +
                                                                                  + + + + + + +
                                                                                  + Tags + + +
                                                                                  +
                                                                                  +
                                                                                  + author +
                                                                                  +
                                                                                  + +

                                                                                  Sergei Shilko contact@sshilko.com

                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + license +
                                                                                  +
                                                                                  + +

                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + see +
                                                                                  +
                                                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                                                  +
                                                                                  + + + +

                                                                                  + Table of Contents + + +

                                                                                  + + + +

                                                                                  + Interfaces + + +

                                                                                  +
                                                                                  +
                                                                                  MydbExpressionInterface
                                                                                  + + + + + + +

                                                                                  + Properties + + +

                                                                                  +
                                                                                  +
                                                                                  + $input + +  : string +
                                                                                  + +
                                                                                  + +

                                                                                  + Methods + + +

                                                                                  +
                                                                                  +
                                                                                  + __construct() + +  : mixed +
                                                                                  + +
                                                                                  + __toString() + +  : string +
                                                                                  +
                                                                                  As of PHP8.0 this is Stringable interface
                                                                                  + +
                                                                                  + + + + + + + +
                                                                                  +

                                                                                  + Properties + + +

                                                                                  +
                                                                                  +

                                                                                  + $input + + + + +

                                                                                  + + + + + protected + string + $input + + + + + + +
                                                                                  +
                                                                                  + +
                                                                                  +

                                                                                  + Methods + + +

                                                                                  +
                                                                                  +

                                                                                  + __construct() + + +

                                                                                  + + + + + public + __construct(string $input) : mixed + +
                                                                                  +
                                                                                  + +
                                                                                  Parameters
                                                                                  +
                                                                                  +
                                                                                  + $input + : string +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + + + + +
                                                                                  +
                                                                                  +

                                                                                  + __toString() + + +

                                                                                  + + +

                                                                                  As of PHP8.0 this is Stringable interface

                                                                                  + + + public + __toString() : string + +
                                                                                  +
                                                                                  + + + + +
                                                                                  +
                                                                                  Return values
                                                                                  + string +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  
                                                                                  +        
                                                                                  + +
                                                                                  +
                                                                                  + + + +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  + On this page + + +
                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Search results

                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    + + +
                                                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbExpressionInterface.html b/php/phpdoc/classes/sql-MydbExpressionInterface.html new file mode 100644 index 00000000000..f9f607e8035 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbExpressionInterface.html @@ -0,0 +1,392 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                    +

                                                                                    phpDocumentor

                                                                                    + + + + + +
                                                                                    + +
                                                                                    +
                                                                                    + + + + +
                                                                                    +
                                                                                    + + +
                                                                                    +

                                                                                    + MydbExpressionInterface +
                                                                                    + in + +
                                                                                    +

                                                                                    + + + + + + +
                                                                                    + Tags + + +
                                                                                    +
                                                                                    +
                                                                                    + author +
                                                                                    +
                                                                                    + +

                                                                                    Sergei Shilko contact@sshilko.com

                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + license +
                                                                                    +
                                                                                    + +

                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + see +
                                                                                    +
                                                                                    + https://github.com/sshilko/php-sql-mydb + + +
                                                                                    +
                                                                                    + + + +

                                                                                    + Table of Contents + + +

                                                                                    + + + + + + + + + + +

                                                                                    + Methods + + +

                                                                                    +
                                                                                    +
                                                                                    + __toString() + +  : string +
                                                                                    +
                                                                                    As of PHP8.0 this is Stringable interface
                                                                                    + +
                                                                                    + + + + + + +
                                                                                    +

                                                                                    + Methods + + +

                                                                                    +
                                                                                    +

                                                                                    + __toString() + + +

                                                                                    + + +

                                                                                    As of PHP8.0 this is Stringable interface

                                                                                    + + + public + __toString() : string + +
                                                                                    +
                                                                                    + + + + +
                                                                                    +
                                                                                    Return values
                                                                                    + string +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    
                                                                                    +        
                                                                                    + +
                                                                                    +
                                                                                    + + + +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    + On this page + + +
                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    +

                                                                                    Search results

                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      + + +
                                                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-AdministrationStatementsInterface.html b/php/phpdoc/classes/sql-MydbInterface-AdministrationStatementsInterface.html new file mode 100644 index 00000000000..00abfbf0cc1 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-AdministrationStatementsInterface.html @@ -0,0 +1,479 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                      +

                                                                                      phpDocumentor

                                                                                      + + + + + +
                                                                                      + +
                                                                                      +
                                                                                      + + + + +
                                                                                      +
                                                                                      + + +
                                                                                      +

                                                                                      + AdministrationStatementsInterface +
                                                                                      + in + +
                                                                                      +

                                                                                      + + + + + + +
                                                                                      + Tags + + +
                                                                                      +
                                                                                      +
                                                                                      + see +
                                                                                      +
                                                                                      + https://dev.mysql.com/doc/refman/8.0/en/sql-server-administration-statements.html + + +
                                                                                      +
                                                                                      + see +
                                                                                      +
                                                                                      + https://github.com/sshilko/php-sql-mydb + + +
                                                                                      +
                                                                                      + author +
                                                                                      +
                                                                                      + +

                                                                                      Sergei Shilko contact@sshilko.com

                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + license +
                                                                                      +
                                                                                      + +

                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + category +
                                                                                      +
                                                                                      + +

                                                                                      interfaces

                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + + + +

                                                                                      + Table of Contents + + +

                                                                                      + + + + + + + + + + +

                                                                                      + Methods + + +

                                                                                      +
                                                                                      +
                                                                                      + getEnumValues() + +  : array<string|int, string> +
                                                                                      + +
                                                                                      + getPrimaryKeys() + +  : array<string|int, string>|null +
                                                                                      +
                                                                                      Get table primary keys
                                                                                      + +
                                                                                      + + + + + + +
                                                                                      +

                                                                                      + Methods + + +

                                                                                      +
                                                                                      +

                                                                                      + getEnumValues() + + +

                                                                                      + + + + + public + getEnumValues(string $table, string $column) : array<string|int, string> + +
                                                                                      +
                                                                                      + +
                                                                                      Parameters
                                                                                      +
                                                                                      +
                                                                                      + $table + : string +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + $column + : string +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + + + +
                                                                                      +
                                                                                      Return values
                                                                                      + array<string|int, string> +
                                                                                      + +
                                                                                      +
                                                                                      +

                                                                                      + getPrimaryKeys() + + +

                                                                                      + + +

                                                                                      Get table primary keys

                                                                                      + + + public + getPrimaryKeys(string $table) : array<string|int, string>|null + +
                                                                                      +
                                                                                      + +
                                                                                      Parameters
                                                                                      +
                                                                                      +
                                                                                      + $table + : string +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + + + +
                                                                                      +
                                                                                      Return values
                                                                                      + array<string|int, string>|null +
                                                                                      + +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      
                                                                                      +        
                                                                                      + +
                                                                                      +
                                                                                      + + + +
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      + On this page + + +
                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      +

                                                                                      Search results

                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + + +
                                                                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-AsyncInterface.html b/php/phpdoc/classes/sql-MydbInterface-AsyncInterface.html new file mode 100644 index 00000000000..b9f9fb9c21f --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-AsyncInterface.html @@ -0,0 +1,338 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                                                                        +

                                                                                        phpDocumentor

                                                                                        + + + + + +
                                                                                        + +
                                                                                        +
                                                                                        + + + + +
                                                                                        + + +
                                                                                        +

                                                                                        + AsyncInterface +
                                                                                        + in + +
                                                                                        +

                                                                                        + + + + + + +
                                                                                        + Tags + +
                                                                                        +
                                                                                        +
                                                                                        + author +
                                                                                        +
                                                                                        + +

                                                                                        Sergei Shilko contact@sshilko.com

                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + license +
                                                                                        +
                                                                                        + +

                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + category +
                                                                                        +
                                                                                        + +

                                                                                        interfaces

                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + see +
                                                                                        +
                                                                                        + https://github.com/sshilko/php-sql-mydb + + +
                                                                                        +
                                                                                        + + + + + + +

                                                                                        + Table of Contents + +

                                                                                        + +
                                                                                        +
                                                                                        + async() + +  : void +
                                                                                        +
                                                                                        + +
                                                                                        + + + + + +
                                                                                        +

                                                                                        + Methods + +

                                                                                        +
                                                                                        +

                                                                                        + async() + +

                                                                                        + + + + + public + async(string $command) : void + +
                                                                                        + +
                                                                                        Parameters
                                                                                        +
                                                                                        +
                                                                                        + $command + : string +
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + + + +
                                                                                        Return values
                                                                                        + void + — + + +
                                                                                        +
                                                                                        + + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        +

                                                                                        Search results

                                                                                        + +
                                                                                        +
                                                                                        +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          + + +
                                                                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-CommandInterface.html b/php/phpdoc/classes/sql-MydbInterface-CommandInterface.html new file mode 100644 index 00000000000..5a693afbf3f --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-CommandInterface.html @@ -0,0 +1,418 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                          +

                                                                                          phpDocumentor

                                                                                          + + + + + +
                                                                                          + +
                                                                                          +
                                                                                          + + + + +
                                                                                          +
                                                                                          + + +
                                                                                          +

                                                                                          + CommandInterface +
                                                                                          + in + +
                                                                                          +

                                                                                          + + + + + + +
                                                                                          + Tags + + +
                                                                                          +
                                                                                          +
                                                                                          + author +
                                                                                          +
                                                                                          + +

                                                                                          Sergei Shilko contact@sshilko.com

                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + license +
                                                                                          +
                                                                                          + +

                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + category +
                                                                                          +
                                                                                          + +

                                                                                          interfaces

                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + see +
                                                                                          +
                                                                                          + https://github.com/sshilko/php-sql-mydb + + +
                                                                                          +
                                                                                          + + + +

                                                                                          + Table of Contents + + +

                                                                                          + + + + + + + + + + +

                                                                                          + Methods + + +

                                                                                          +
                                                                                          +
                                                                                          + command() + +  : bool +
                                                                                          +
                                                                                          Execute any SQL command, without returning result
                                                                                          + +
                                                                                          + + + + + + +
                                                                                          +

                                                                                          + Methods + + +

                                                                                          +
                                                                                          +

                                                                                          + command() + + +

                                                                                          + + +

                                                                                          Execute any SQL command, without returning result

                                                                                          + + + public + command(string $query) : bool + +
                                                                                          +
                                                                                          + +
                                                                                          Parameters
                                                                                          +
                                                                                          +
                                                                                          + $query + : string +
                                                                                          +
                                                                                          +

                                                                                          sql command

                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + + + +
                                                                                          +
                                                                                          Return values
                                                                                          + bool + — +

                                                                                          true success or false on failure

                                                                                          +
                                                                                          + +
                                                                                          + +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          
                                                                                          +        
                                                                                          + +
                                                                                          +
                                                                                          + + + +
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          + On this page + + +
                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          +

                                                                                          Search results

                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            + + +
                                                                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-DataManipulationStatementsInterface.html b/php/phpdoc/classes/sql-MydbInterface-DataManipulationStatementsInterface.html new file mode 100644 index 00000000000..acc9467518a --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-DataManipulationStatementsInterface.html @@ -0,0 +1,1042 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                            +

                                                                                            phpDocumentor

                                                                                            + + + + + +
                                                                                            + +
                                                                                            +
                                                                                            + + + + +
                                                                                            +
                                                                                            + + +
                                                                                            +

                                                                                            + DataManipulationStatementsInterface +
                                                                                            + in + +
                                                                                            +

                                                                                            + + + +

                                                                                            These statements do not implicitly commit the current transaction.

                                                                                            + +

                                                                                            Data Manipulation Language (DML) statements are used for managing data within +schema objects DML deals with data manipulation, and therefore includes most common +SQL statements such as SELECT, INSERT, etc. DML allows adding / modifying / deleting data itself.

                                                                                            +
                                                                                            + + +
                                                                                            + Tags + + +
                                                                                            +
                                                                                            +
                                                                                            + see +
                                                                                            +
                                                                                            + https://dev.mysql.com/doc/refman/8.0/en/sql-data-manipulation-statements.html + + +
                                                                                            +
                                                                                            + see +
                                                                                            +
                                                                                            + https://github.com/sshilko/php-sql-mydb + + +
                                                                                            +
                                                                                            + author +
                                                                                            +
                                                                                            + +

                                                                                            Sergei Shilko contact@sshilko.com

                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + license +
                                                                                            +
                                                                                            + +

                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + category +
                                                                                            +
                                                                                            + +

                                                                                            interfaces

                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +

                                                                                            + Table of Contents + + +

                                                                                            + + + + + + + + + + +

                                                                                            + Methods + + +

                                                                                            +
                                                                                            +
                                                                                            + delete() + +  : int|null +
                                                                                            + +
                                                                                            + deleteWhere() + +  : int|null +
                                                                                            + +
                                                                                            + insert() + +  : string|null +
                                                                                            + +
                                                                                            + insertMany() + +  : void +
                                                                                            + +
                                                                                            + insertOne() + +  : string|null +
                                                                                            + +
                                                                                            + replace() + +  : string|null +
                                                                                            + +
                                                                                            + replaceOne() + +  : string|null +
                                                                                            + +
                                                                                            + select() + +  : array<string|int, mixed>|null +
                                                                                            + +
                                                                                            + update() + +  : int|null +
                                                                                            + +
                                                                                            + updateWhere() + +  : int|null +
                                                                                            + +
                                                                                            + updateWhereMany() + +  : void +
                                                                                            + +
                                                                                            + + + + + + +
                                                                                            +

                                                                                            + Methods + + +

                                                                                            +
                                                                                            +

                                                                                            + delete() + + +

                                                                                            + + + + + public + delete(string $query) : int|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $query + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + int|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + deleteWhere() + + +

                                                                                            + + + + + public + deleteWhere(array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $whereFields + : array<string|int, mixed> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $table + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $whereNotFields + : array<string|int, mixed> + = []
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + int|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + insert() + + +

                                                                                            + + + + + public + insert(string $query) : string|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $query + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + string|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + insertMany() + + +

                                                                                            + + + + + public + insertMany(array<string|int, mixed> $data, array<string|int, string> $cols, string $table[, bool $ignore = false ][, string $onDuplicateSql = '' ]) : void + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $data + : array<string|int, mixed> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $cols + : array<string|int, string> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $table + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $ignore + : bool + = false
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $onDuplicateSql + : string + = ''
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + +
                                                                                            + Tags + + +
                                                                                            +
                                                                                            +
                                                                                            + psalm-param +
                                                                                            +
                                                                                            + +

                                                                                            array<array-key, array<(float|int|string|\sql\MydbExpressionInterface|null)>> $data

                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + +
                                                                                            + +
                                                                                            +

                                                                                            + replace() + + +

                                                                                            + + + + + public + replace(string $query) : string|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $query + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + string|null +
                                                                                            + +
                                                                                            + +
                                                                                            +

                                                                                            + select() + + +

                                                                                            + + + + + public + select(string $query) : array<string|int, mixed>|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $query + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + array<string|int, mixed>|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + update() + + +

                                                                                            + + + + + public + update(string $query) : int|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $query + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + int|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + updateWhere() + + +

                                                                                            + + + + + public + updateWhere(array<string, float|int|string|MydbExpressionInterface|null> $update, array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $update + : array<string, float|int|string|MydbExpressionInterface|null> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $whereFields + : array<string|int, mixed> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $table + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $whereNotFields + : array<string|int, mixed> + = []
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            Return values
                                                                                            + int|null +
                                                                                            + +
                                                                                            +
                                                                                            +

                                                                                            + updateWhereMany() + + +

                                                                                            + + + + + public + updateWhereMany(array<string|int, mixed> $columnSetWhere, array<string|int, mixed> $where, string $table) : void + +
                                                                                            +
                                                                                            + +
                                                                                            Parameters
                                                                                            +
                                                                                            +
                                                                                            + $columnSetWhere + : array<string|int, mixed> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $where + : array<string|int, mixed> +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + $table + : string +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + + + + +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            
                                                                                            +        
                                                                                            + +
                                                                                            +
                                                                                            + + + +
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            + On this page + + +
                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            +

                                                                                            Search results

                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              + + +
                                                                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-EncoderInterface.html b/php/phpdoc/classes/sql-MydbInterface-EncoderInterface.html new file mode 100644 index 00000000000..6a949d6cf61 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-EncoderInterface.html @@ -0,0 +1,428 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                              +

                                                                                              phpDocumentor

                                                                                              + + + + + +
                                                                                              + +
                                                                                              +
                                                                                              + + + + +
                                                                                              +
                                                                                              + + +
                                                                                              +

                                                                                              + EncoderInterface +
                                                                                              + in + +
                                                                                              +

                                                                                              + + + + + + +
                                                                                              + Tags + + +
                                                                                              +
                                                                                              +
                                                                                              + author +
                                                                                              +
                                                                                              + +

                                                                                              Sergei Shilko contact@sshilko.com

                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + license +
                                                                                              +
                                                                                              + +

                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + category +
                                                                                              +
                                                                                              + +

                                                                                              interfaces

                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + see +
                                                                                              +
                                                                                              + https://github.com/sshilko/php-sql-mydb + + +
                                                                                              +
                                                                                              + phpcs:disable +
                                                                                              +
                                                                                              + +

                                                                                              SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName

                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + + + +

                                                                                              + Table of Contents + + +

                                                                                              + + + + + + + + + + +

                                                                                              + Methods + + +

                                                                                              +
                                                                                              +
                                                                                              + escape() + +  : string +
                                                                                              +
                                                                                              Escape value for the SQL query
                                                                                              + +
                                                                                              + + + + + + +
                                                                                              +

                                                                                              + Methods + + +

                                                                                              +
                                                                                              +

                                                                                              + escape() + + +

                                                                                              + + +

                                                                                              Escape value for the SQL query

                                                                                              + + + public + escape(float|int|string|MydbExpressionInterface|null $unescaped[, string $quote = "'" ]) : string + +
                                                                                              +
                                                                                              + +
                                                                                              Parameters
                                                                                              +
                                                                                              +
                                                                                              + $unescaped + : float|int|string|MydbExpressionInterface|null +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + $quote + : string + = "'"
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + + + +
                                                                                              +
                                                                                              Return values
                                                                                              + string +
                                                                                              + +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              
                                                                                              +        
                                                                                              + +
                                                                                              +
                                                                                              + + + +
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              + On this page + + +
                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              +

                                                                                              Search results

                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                + + +
                                                                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-QueryInterface.html b/php/phpdoc/classes/sql-MydbInterface-QueryInterface.html new file mode 100644 index 00000000000..3a4743f89f3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-QueryInterface.html @@ -0,0 +1,426 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                +

                                                                                                phpDocumentor

                                                                                                + + + + + +
                                                                                                + +
                                                                                                +
                                                                                                + + + + +
                                                                                                +
                                                                                                + + +
                                                                                                +

                                                                                                + QueryInterface +
                                                                                                + in + +
                                                                                                +

                                                                                                + + + + + + +
                                                                                                + Tags + + +
                                                                                                +
                                                                                                +
                                                                                                + author +
                                                                                                +
                                                                                                + +

                                                                                                Sergei Shilko contact@sshilko.com

                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + license +
                                                                                                +
                                                                                                + +

                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + category +
                                                                                                +
                                                                                                + +

                                                                                                interfaces

                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + see +
                                                                                                +
                                                                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                +
                                                                                                + + + +

                                                                                                + Table of Contents + + +

                                                                                                + + + + + + + + + + +

                                                                                                + Methods + + +

                                                                                                +
                                                                                                +
                                                                                                + query() + +  : array<string|int, mixed>|null +
                                                                                                + +
                                                                                                + + + + + + +
                                                                                                +

                                                                                                + Methods + + +

                                                                                                +
                                                                                                +

                                                                                                + query() + + +

                                                                                                + + + + + public + query(string $query) : array<string|int, mixed>|null + +
                                                                                                +
                                                                                                + +
                                                                                                Parameters
                                                                                                +
                                                                                                +
                                                                                                + $query + : string +
                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + + +
                                                                                                + Tags + + +
                                                                                                +
                                                                                                +
                                                                                                + phpcs:disable +
                                                                                                +
                                                                                                + +

                                                                                                SlevomatCodingStandard.TypeHints.ReturnTypeHint

                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                Return values
                                                                                                + array<string|int, mixed>|null +
                                                                                                + +
                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                
                                                                                                +        
                                                                                                + +
                                                                                                +
                                                                                                + + + +
                                                                                                +
                                                                                                +
                                                                                                + +
                                                                                                + On this page + + +
                                                                                                + +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                +
                                                                                                +

                                                                                                Search results

                                                                                                + +
                                                                                                +
                                                                                                +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  + + +
                                                                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-RemoteResourceInterface.html b/php/phpdoc/classes/sql-MydbInterface-RemoteResourceInterface.html new file mode 100644 index 00000000000..fdb1f483e94 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-RemoteResourceInterface.html @@ -0,0 +1,444 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                  +

                                                                                                  phpDocumentor

                                                                                                  + + + + + +
                                                                                                  + +
                                                                                                  +
                                                                                                  + + + + +
                                                                                                  +
                                                                                                  + + +
                                                                                                  +

                                                                                                  + RemoteResourceInterface +
                                                                                                  + in + +
                                                                                                  +

                                                                                                  + + + + + + +
                                                                                                  + Tags + + +
                                                                                                  +
                                                                                                  +
                                                                                                  + author +
                                                                                                  +
                                                                                                  + +

                                                                                                  Sergei Shilko contact@sshilko.com

                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  + license +
                                                                                                  +
                                                                                                  + +

                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  + category +
                                                                                                  +
                                                                                                  + +

                                                                                                  interfaces

                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  + see +
                                                                                                  +
                                                                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                  +
                                                                                                  + + + +

                                                                                                  + Table of Contents + + +

                                                                                                  + + + + + + + + + + +

                                                                                                  + Methods + + +

                                                                                                  +
                                                                                                  +
                                                                                                  + close() + +  : void +
                                                                                                  +
                                                                                                  Cleanup remote server connection +will NOT close persistent connections
                                                                                                  + +
                                                                                                  + open() + +  : bool +
                                                                                                  +
                                                                                                  Open remote server connection
                                                                                                  + +
                                                                                                  + + + + + + +
                                                                                                  +

                                                                                                  + Methods + + +

                                                                                                  +
                                                                                                  +

                                                                                                  + close() + + +

                                                                                                  + + +

                                                                                                  Cleanup remote server connection +will NOT close persistent connections

                                                                                                  + + + public + close() : void + +
                                                                                                  +
                                                                                                  + + + + + +
                                                                                                  +
                                                                                                  +

                                                                                                  + open() + + +

                                                                                                  + + +

                                                                                                  Open remote server connection

                                                                                                  + + + public + open() : bool + +
                                                                                                  +
                                                                                                  + + + + +
                                                                                                  +
                                                                                                  Return values
                                                                                                  + bool +
                                                                                                  + +
                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  
                                                                                                  +        
                                                                                                  + +
                                                                                                  +
                                                                                                  + + + +
                                                                                                  +
                                                                                                  +
                                                                                                  + +
                                                                                                  + On this page + + +
                                                                                                  + +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  +
                                                                                                  +

                                                                                                  Search results

                                                                                                  + +
                                                                                                  +
                                                                                                  +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    + + +
                                                                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface-TransactionInterface.html b/php/phpdoc/classes/sql-MydbInterface-TransactionInterface.html new file mode 100644 index 00000000000..49ec053101b --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface-TransactionInterface.html @@ -0,0 +1,472 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                    +

                                                                                                    phpDocumentor

                                                                                                    + + + + + +
                                                                                                    + +
                                                                                                    +
                                                                                                    + + + + +
                                                                                                    +
                                                                                                    + + +
                                                                                                    +

                                                                                                    + TransactionInterface +
                                                                                                    + in + +
                                                                                                    +

                                                                                                    + + + + + + +
                                                                                                    + Tags + + +
                                                                                                    +
                                                                                                    +
                                                                                                    + author +
                                                                                                    +
                                                                                                    + +

                                                                                                    Sergei Shilko contact@sshilko.com

                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    + license +
                                                                                                    +
                                                                                                    + +

                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    + category +
                                                                                                    +
                                                                                                    + +

                                                                                                    interfaces

                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    + see +
                                                                                                    +
                                                                                                    + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                    +
                                                                                                    + + + +

                                                                                                    + Table of Contents + + +

                                                                                                    + + + + + + + + + + +

                                                                                                    + Methods + + +

                                                                                                    +
                                                                                                    +
                                                                                                    + beginTransaction() + +  : void +
                                                                                                    + +
                                                                                                    + commitTransaction() + +  : void +
                                                                                                    + +
                                                                                                    + rollbackTransaction() + +  : void +
                                                                                                    + +
                                                                                                    + + + + + + +
                                                                                                    +

                                                                                                    + Methods + + +

                                                                                                    +
                                                                                                    +

                                                                                                    + beginTransaction() + + +

                                                                                                    + + + + + public + beginTransaction() : void + +
                                                                                                    +
                                                                                                    + + + + + +
                                                                                                    +
                                                                                                    +

                                                                                                    + commitTransaction() + + +

                                                                                                    + + + + + public + commitTransaction() : void + +
                                                                                                    +
                                                                                                    + + + + + +
                                                                                                    +
                                                                                                    +

                                                                                                    + rollbackTransaction() + + +

                                                                                                    + + + + + public + rollbackTransaction() : void + +
                                                                                                    +
                                                                                                    + + + + + +
                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    
                                                                                                    +        
                                                                                                    + +
                                                                                                    +
                                                                                                    + + + +
                                                                                                    +
                                                                                                    +
                                                                                                    + +
                                                                                                    + On this page + + +
                                                                                                    + +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    +
                                                                                                    +

                                                                                                    Search results

                                                                                                    + +
                                                                                                    +
                                                                                                    +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      + + +
                                                                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbInterface.html b/php/phpdoc/classes/sql-MydbInterface.html new file mode 100644 index 00000000000..6833fc5722a --- /dev/null +++ b/php/phpdoc/classes/sql-MydbInterface.html @@ -0,0 +1,1438 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                      +

                                                                                                      phpDocumentor

                                                                                                      + + + + + +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + + +
                                                                                                      +
                                                                                                      + + +
                                                                                                      +

                                                                                                      + MydbInterface + + extends + EncoderInterface, CommandInterface, QueryInterface, DataManipulationStatementsInterface, TransactionInterface, AdministrationStatementsInterface +
                                                                                                      + in + +
                                                                                                      +

                                                                                                      + + + + + + +
                                                                                                      + Tags + + +
                                                                                                      +
                                                                                                      +
                                                                                                      + author +
                                                                                                      +
                                                                                                      + +

                                                                                                      Sergei Shilko contact@sshilko.com

                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + license +
                                                                                                      +
                                                                                                      + +

                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + see +
                                                                                                      +
                                                                                                      + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                      +
                                                                                                      + + + +

                                                                                                      + Table of Contents + + +

                                                                                                      + + + + + + + + + + +

                                                                                                      + Methods + + +

                                                                                                      +
                                                                                                      +
                                                                                                      + beginTransaction() + +  : void +
                                                                                                      + +
                                                                                                      + command() + +  : bool +
                                                                                                      +
                                                                                                      Execute any SQL command, without returning result
                                                                                                      + +
                                                                                                      + commitTransaction() + +  : void +
                                                                                                      + +
                                                                                                      + delete() + +  : int|null +
                                                                                                      + +
                                                                                                      + deleteWhere() + +  : int|null +
                                                                                                      + +
                                                                                                      + escape() + +  : string +
                                                                                                      +
                                                                                                      Escape value for the SQL query
                                                                                                      + +
                                                                                                      + getEnumValues() + +  : array<string|int, string> +
                                                                                                      + +
                                                                                                      + getPrimaryKeys() + +  : array<string|int, string>|null +
                                                                                                      +
                                                                                                      Get table primary keys
                                                                                                      + +
                                                                                                      + insert() + +  : string|null +
                                                                                                      + +
                                                                                                      + insertMany() + +  : void +
                                                                                                      + +
                                                                                                      + insertOne() + +  : string|null +
                                                                                                      + +
                                                                                                      + query() + +  : array<string|int, mixed>|null +
                                                                                                      + +
                                                                                                      + replace() + +  : string|null +
                                                                                                      + +
                                                                                                      + replaceOne() + +  : string|null +
                                                                                                      + +
                                                                                                      + rollbackTransaction() + +  : void +
                                                                                                      + +
                                                                                                      + select() + +  : array<string|int, mixed>|null +
                                                                                                      + +
                                                                                                      + update() + +  : int|null +
                                                                                                      + +
                                                                                                      + updateWhere() + +  : int|null +
                                                                                                      + +
                                                                                                      + updateWhereMany() + +  : void +
                                                                                                      + +
                                                                                                      + + + + + + +
                                                                                                      +

                                                                                                      + Methods + + +

                                                                                                      +
                                                                                                      +

                                                                                                      + beginTransaction() + + +

                                                                                                      + + + + + public + beginTransaction() : void + +
                                                                                                      +
                                                                                                      + + + + + +
                                                                                                      +
                                                                                                      +

                                                                                                      + command() + + +

                                                                                                      + + +

                                                                                                      Execute any SQL command, without returning result

                                                                                                      + + + public + command(string $query) : bool + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      +

                                                                                                      sql command

                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + bool + — +

                                                                                                      true success or false on failure

                                                                                                      +
                                                                                                      + +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + commitTransaction() + + +

                                                                                                      + + + + + public + commitTransaction() : void + +
                                                                                                      +
                                                                                                      + + + + + +
                                                                                                      +
                                                                                                      +

                                                                                                      + delete() + + +

                                                                                                      + + + + + public + delete(string $query) : int|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + int|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + deleteWhere() + + +

                                                                                                      + + + + + public + deleteWhere(array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $whereFields + : array<string|int, mixed> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $whereNotFields + : array<string|int, mixed> + = []
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + int|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + escape() + + +

                                                                                                      + + +

                                                                                                      Escape value for the SQL query

                                                                                                      + + + public + escape(float|int|string|MydbExpressionInterface|null $unescaped[, string $quote = "'" ]) : string + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $unescaped + : float|int|string|MydbExpressionInterface|null +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $quote + : string + = "'"
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + string +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + getEnumValues() + + +

                                                                                                      + + + + + public + getEnumValues(string $table, string $column) : array<string|int, string> + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $column + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + array<string|int, string> +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + getPrimaryKeys() + + +

                                                                                                      + + +

                                                                                                      Get table primary keys

                                                                                                      + + + public + getPrimaryKeys(string $table) : array<string|int, string>|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + array<string|int, string>|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + insert() + + +

                                                                                                      + + + + + public + insert(string $query) : string|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + string|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + insertMany() + + +

                                                                                                      + + + + + public + insertMany(array<string|int, mixed> $data, array<string|int, string> $cols, string $table[, bool $ignore = false ][, string $onDuplicateSql = '' ]) : void + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $data + : array<string|int, mixed> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $cols + : array<string|int, string> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $ignore + : bool + = false
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $onDuplicateSql + : string + = ''
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + +
                                                                                                      + Tags + + +
                                                                                                      +
                                                                                                      +
                                                                                                      + psalm-param +
                                                                                                      +
                                                                                                      + +

                                                                                                      array<array-key, array<(float|int|string|\sql\MydbExpressionInterface|null)>> $data

                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + +
                                                                                                      + +
                                                                                                      +

                                                                                                      + query() + + +

                                                                                                      + + + + + public + query(string $query) : array<string|int, mixed>|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + +
                                                                                                      + Tags + + +
                                                                                                      +
                                                                                                      +
                                                                                                      + phpcs:disable +
                                                                                                      +
                                                                                                      + +

                                                                                                      SlevomatCodingStandard.TypeHints.ReturnTypeHint

                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + array<string|int, mixed>|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + replace() + + +

                                                                                                      + + + + + public + replace(string $query) : string|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + string|null +
                                                                                                      + +
                                                                                                      + +
                                                                                                      +

                                                                                                      + rollbackTransaction() + + +

                                                                                                      + + + + + public + rollbackTransaction() : void + +
                                                                                                      +
                                                                                                      + + + + + +
                                                                                                      +
                                                                                                      +

                                                                                                      + select() + + +

                                                                                                      + + + + + public + select(string $query) : array<string|int, mixed>|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + array<string|int, mixed>|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + update() + + +

                                                                                                      + + + + + public + update(string $query) : int|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $query + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + int|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + updateWhere() + + +

                                                                                                      + + + + + public + updateWhere(array<string, float|int|string|MydbExpressionInterface|null> $update, array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : int|null + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $update + : array<string, float|int|string|MydbExpressionInterface|null> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $whereFields + : array<string|int, mixed> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $whereNotFields + : array<string|int, mixed> + = []
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      Return values
                                                                                                      + int|null +
                                                                                                      + +
                                                                                                      +
                                                                                                      +

                                                                                                      + updateWhereMany() + + +

                                                                                                      + + + + + public + updateWhereMany(array<string|int, mixed> $columnSetWhere, array<string|int, mixed> $where, string $table) : void + +
                                                                                                      +
                                                                                                      + +
                                                                                                      Parameters
                                                                                                      +
                                                                                                      +
                                                                                                      + $columnSetWhere + : array<string|int, mixed> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $where + : array<string|int, mixed> +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + $table + : string +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + + +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      
                                                                                                      +        
                                                                                                      + +
                                                                                                      +
                                                                                                      + + + +
                                                                                                      +
                                                                                                      +
                                                                                                      + +
                                                                                                      + On this page + + +
                                                                                                      + +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      +
                                                                                                      +

                                                                                                      Search results

                                                                                                      + +
                                                                                                      +
                                                                                                      +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        + + +
                                                                                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbListener-InternalListener.html b/php/phpdoc/classes/sql-MydbListener-InternalListener.html new file mode 100644 index 00000000000..eefbde7f2b2 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbListener-InternalListener.html @@ -0,0 +1,542 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                        +

                                                                                                        phpDocumentor

                                                                                                        + + + + + +
                                                                                                        + +
                                                                                                        +
                                                                                                        + + + + +
                                                                                                        +
                                                                                                        + + +
                                                                                                        +

                                                                                                        + InternalListener + + + extends MydbListener + + +
                                                                                                        + in package + +
                                                                                                        + + +

                                                                                                        + +
                                                                                                        + + +
                                                                                                        + + + + + + + + + +

                                                                                                        + Table of Contents + + +

                                                                                                        + + + + + + + + + +

                                                                                                        + Properties + + +

                                                                                                        +
                                                                                                        +
                                                                                                        + $logger + +  : LoggerInterface|null +
                                                                                                        + +
                                                                                                        + +

                                                                                                        + Methods + + +

                                                                                                        +
                                                                                                        +
                                                                                                        + __construct() + +  : mixed +
                                                                                                        + +
                                                                                                        + observe() + +  : bool +
                                                                                                        + +
                                                                                                        + onEvent() + +  : bool|null +
                                                                                                        + +
                                                                                                        + + + + + + + +
                                                                                                        +

                                                                                                        + Properties + + +

                                                                                                        +
                                                                                                        +

                                                                                                        + $logger + + + + +

                                                                                                        + + + + + protected + LoggerInterface|null + $logger + = null + + + + + +
                                                                                                        +
                                                                                                        + +
                                                                                                        +

                                                                                                        + Methods + + +

                                                                                                        +
                                                                                                        +

                                                                                                        + __construct() + + +

                                                                                                        + + + + + public + __construct([LoggerInterface|null $logger = null ]) : mixed + +
                                                                                                        +
                                                                                                        + +
                                                                                                        Parameters
                                                                                                        +
                                                                                                        +
                                                                                                        + $logger + : LoggerInterface|null + = null
                                                                                                        +
                                                                                                        + +
                                                                                                        +
                                                                                                        + + + + +
                                                                                                        + + +
                                                                                                        + +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        
                                                                                                        +        
                                                                                                        + +
                                                                                                        +
                                                                                                        + + + +
                                                                                                        +
                                                                                                        +
                                                                                                        + +
                                                                                                        + On this page + + +
                                                                                                        + +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        +
                                                                                                        +

                                                                                                        Search results

                                                                                                        + +
                                                                                                        +
                                                                                                        +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          + + +
                                                                                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbListener.html b/php/phpdoc/classes/sql-MydbListener.html new file mode 100644 index 00000000000..7fb6af5ac6b --- /dev/null +++ b/php/phpdoc/classes/sql-MydbListener.html @@ -0,0 +1,442 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                          +

                                                                                                          phpDocumentor

                                                                                                          + + + + + +
                                                                                                          + +
                                                                                                          +
                                                                                                          + + + + +
                                                                                                          +
                                                                                                          + + +
                                                                                                          +

                                                                                                          + MydbListener + + +
                                                                                                          + in package + +
                                                                                                          + + + implements + MydbListenerInterface + +

                                                                                                          + +
                                                                                                          + + +
                                                                                                          AbstractYes
                                                                                                          + +
                                                                                                          + + + + + + + + + +

                                                                                                          + Table of Contents + + +

                                                                                                          + + + +

                                                                                                          + Interfaces + + +

                                                                                                          +
                                                                                                          +
                                                                                                          MydbListenerInterface
                                                                                                          + + + + + + + +

                                                                                                          + Methods + + +

                                                                                                          +
                                                                                                          +
                                                                                                          + observe() + +  : bool +
                                                                                                          + +
                                                                                                          + onEvent() + +  : bool|null +
                                                                                                          + +
                                                                                                          + + + + + + + + +
                                                                                                          +

                                                                                                          + Methods + + +

                                                                                                          + + +
                                                                                                          + +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          
                                                                                                          +        
                                                                                                          + +
                                                                                                          +
                                                                                                          + + + +
                                                                                                          +
                                                                                                          +
                                                                                                          + +
                                                                                                          + On this page + + +
                                                                                                          + +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          +
                                                                                                          +

                                                                                                          Search results

                                                                                                          + +
                                                                                                          +
                                                                                                          +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            + + +
                                                                                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbListenerInterface.html b/php/phpdoc/classes/sql-MydbListenerInterface.html new file mode 100644 index 00000000000..c7558836998 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbListenerInterface.html @@ -0,0 +1,367 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                            +

                                                                                                            phpDocumentor

                                                                                                            + + + + + +
                                                                                                            + +
                                                                                                            +
                                                                                                            + + + + +
                                                                                                            +
                                                                                                            + + +
                                                                                                            +

                                                                                                            + MydbListenerInterface +
                                                                                                            + in + +
                                                                                                            +

                                                                                                            + + + + + + + + + +

                                                                                                            + Table of Contents + + +

                                                                                                            + + + + + + + + + + +

                                                                                                            + Methods + + +

                                                                                                            +
                                                                                                            +
                                                                                                            + observe() + +  : bool +
                                                                                                            + +
                                                                                                            + + + + + + +
                                                                                                            +

                                                                                                            + Methods + + +

                                                                                                            + +
                                                                                                            + +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            
                                                                                                            +        
                                                                                                            + +
                                                                                                            +
                                                                                                            + + + +
                                                                                                            +
                                                                                                            +
                                                                                                            + +
                                                                                                            + On this page + + +
                                                                                                            + +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            +
                                                                                                            +

                                                                                                            Search results

                                                                                                            + +
                                                                                                            +
                                                                                                            +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbLogger.html b/php/phpdoc/classes/sql-MydbLogger.html new file mode 100644 index 00000000000..07a6e82ce24 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbLogger.html @@ -0,0 +1,1659 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                              +

                                                                                                              phpDocumentor

                                                                                                              + + + + + +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +

                                                                                                              + MydbLogger + + +
                                                                                                              + in package + +
                                                                                                              + + + implements + LoggerInterface + +

                                                                                                              + +
                                                                                                              + + +
                                                                                                              + + + +

                                                                                                              Implementation of PSR-3 Logger that will output to STDERR & STDOUT

                                                                                                              + + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + author +
                                                                                                              +
                                                                                                              + +

                                                                                                              Sergei Shilko contact@sshilko.com

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + license +
                                                                                                              +
                                                                                                              + +

                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + see +
                                                                                                              +
                                                                                                              + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                              +
                                                                                                              + see +
                                                                                                              +
                                                                                                              + https://www.php-fig.org/psr/psr-3/ + + +
                                                                                                              +
                                                                                                              + + + +

                                                                                                              + Table of Contents + + +

                                                                                                              + + + +

                                                                                                              + Interfaces + + +

                                                                                                              +
                                                                                                              +
                                                                                                              LoggerInterface
                                                                                                              + + + + +

                                                                                                              + Constants + + +

                                                                                                              +
                                                                                                              +
                                                                                                              + IO_WRITE_ATTEMPTS + +  = 3 +
                                                                                                              + +
                                                                                                              + + +

                                                                                                              + Properties + + +

                                                                                                              +
                                                                                                              +
                                                                                                              + $stdeol + +  : string +
                                                                                                              +
                                                                                                              End of line delimiter
                                                                                                              + +
                                                                                                              + $stderr + +  : resource +
                                                                                                              +
                                                                                                              Opened resource, STDERR
                                                                                                              + +
                                                                                                              + $stdout + +  : resource +
                                                                                                              +
                                                                                                              Opened resource, STDOUT
                                                                                                              + +
                                                                                                              + +

                                                                                                              + Methods + + +

                                                                                                              +
                                                                                                              +
                                                                                                              + __construct() + +  : mixed +
                                                                                                              + +
                                                                                                              + __destruct() + +  : mixed +
                                                                                                              + +
                                                                                                              + alert() + +  : void +
                                                                                                              + +
                                                                                                              + critical() + +  : void +
                                                                                                              + +
                                                                                                              + debug() + +  : void +
                                                                                                              + +
                                                                                                              + emergency() + +  : void +
                                                                                                              + +
                                                                                                              + error() + +  : void +
                                                                                                              + +
                                                                                                              + info() + +  : void +
                                                                                                              + +
                                                                                                              + log() + +  : void +
                                                                                                              + +
                                                                                                              + notice() + +  : void +
                                                                                                              + +
                                                                                                              + warning() + +  : void +
                                                                                                              + +
                                                                                                              + checkStreamResource() + +  : void +
                                                                                                              + +
                                                                                                              + formatter() + +  : string +
                                                                                                              + +
                                                                                                              + fwrite() + +  : int|null +
                                                                                                              + +
                                                                                                              + writeOutput() + +  : void +
                                                                                                              + +
                                                                                                              + + + + + +
                                                                                                              +

                                                                                                              + Constants + + +

                                                                                                              +
                                                                                                              +

                                                                                                              + IO_WRITE_ATTEMPTS + + +

                                                                                                              + + + + + + protected + mixed + IO_WRITE_ATTEMPTS + = 3 + + + + + + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +

                                                                                                              + Properties + + +

                                                                                                              +
                                                                                                              +

                                                                                                              + $stdeol + + + + +

                                                                                                              + + +

                                                                                                              End of line delimiter

                                                                                                              + + + protected + string + $stdeol + = \PHP_EOL + + + + + +
                                                                                                              + + +
                                                                                                              + +
                                                                                                              +

                                                                                                              + Methods + + +

                                                                                                              +
                                                                                                              +

                                                                                                              + __construct() + + +

                                                                                                              + + + + + public + __construct([resource $stdout = STDOUT ][, resource $stderr = STDERR ][, string $stdeol = PHP_EOL ]) : mixed + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $stdout + : resource + = STDOUT
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $stderr + : resource + = STDERR
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $stdeol + : string + = PHP_EOL
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + psalm-suppress +
                                                                                                              +
                                                                                                              + +

                                                                                                              MissingParamType

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + __destruct() + + +

                                                                                                              + + + + + public + __destruct() : mixed + +
                                                                                                              +
                                                                                                              + + + + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + alert() + + +

                                                                                                              + + + + + public + alert(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + critical() + + +

                                                                                                              + + + + + public + critical(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + debug() + + +

                                                                                                              + + + + + public + debug(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + emergency() + + +

                                                                                                              + + + + + public + emergency(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + error() + + +

                                                                                                              + + + + + public + error(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + info() + + +

                                                                                                              + + + + + public + info(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + log() + + +

                                                                                                              + + + + + public + log(mixed $level, array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $level + : mixed +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + phpcs:disable +
                                                                                                              +
                                                                                                              + +

                                                                                                              SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + notice() + + +

                                                                                                              + + + + + public + notice(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              +

                                                                                                              + warning() + + +

                                                                                                              + + + + + public + warning(array<string|int, mixed>|string $message[, array<string|int, mixed> $context = [] ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $message + : array<string|int, mixed>|string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $context + : array<string|int, mixed> + = []
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + +
                                                                                                              +

                                                                                                              + formatter() + + +

                                                                                                              + + + + + protected + static formatter(string|array<string|int, mixed> $var) : string + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $var + : string|array<string|int, mixed> +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + + +
                                                                                                              +
                                                                                                              Return values
                                                                                                              + string +
                                                                                                              + +
                                                                                                              +
                                                                                                              +

                                                                                                              + fwrite() + + +

                                                                                                              + + + + + protected + fwrite(resource $stream, string $data) : int|null + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $stream + : resource +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $data + : string +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + + +
                                                                                                              +
                                                                                                              Return values
                                                                                                              + int|null +
                                                                                                              + +
                                                                                                              +
                                                                                                              +

                                                                                                              + writeOutput() + + +

                                                                                                              + + + + + protected + writeOutput(resource $stream[, string $data = '' ]) : void + +
                                                                                                              +
                                                                                                              + +
                                                                                                              Parameters
                                                                                                              +
                                                                                                              +
                                                                                                              + $stream + : resource +
                                                                                                              +
                                                                                                              +

                                                                                                              &fs.file.pointer;

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + $data + : string + = ''
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              + Tags + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + link +
                                                                                                              +
                                                                                                              + https://php.net/manual/en/function.fwrite.php + +
                                                                                                              +
                                                                                                              + throws +
                                                                                                              +
                                                                                                              + LoggerException + + +
                                                                                                              +
                                                                                                              + psalm-suppress +
                                                                                                              +
                                                                                                              + +

                                                                                                              MissingParamType

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + phpcs:disable +
                                                                                                              +
                                                                                                              + +

                                                                                                              SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh

                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + + +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              
                                                                                                              +        
                                                                                                              + +
                                                                                                              +
                                                                                                              + + + +
                                                                                                              +
                                                                                                              +
                                                                                                              + +
                                                                                                              + On this page + + +
                                                                                                              + +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              +
                                                                                                              +

                                                                                                              Search results

                                                                                                              + +
                                                                                                              +
                                                                                                              +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                + + +
                                                                                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliEscapeStringInterface.html b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliEscapeStringInterface.html new file mode 100644 index 00000000000..16c2fa96833 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliEscapeStringInterface.html @@ -0,0 +1,401 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                +

                                                                                                                phpDocumentor

                                                                                                                + + + + + +
                                                                                                                + +
                                                                                                                +
                                                                                                                + + + + +
                                                                                                                +
                                                                                                                + + +
                                                                                                                +

                                                                                                                + MydbMysqliEscapeStringInterface +
                                                                                                                + in + +
                                                                                                                +

                                                                                                                + + + + + + +
                                                                                                                + Tags + + +
                                                                                                                +
                                                                                                                +
                                                                                                                + author +
                                                                                                                +
                                                                                                                + +

                                                                                                                Sergei Shilko contact@sshilko.com

                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                + license +
                                                                                                                +
                                                                                                                + +

                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                + see +
                                                                                                                +
                                                                                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                +
                                                                                                                + + + +

                                                                                                                + Table of Contents + + +

                                                                                                                + + + + + + + + + + +

                                                                                                                + Methods + + +

                                                                                                                +
                                                                                                                +
                                                                                                                + realEscapeString() + +  : string|null +
                                                                                                                + +
                                                                                                                + + + + + + +
                                                                                                                +

                                                                                                                + Methods + + +

                                                                                                                +
                                                                                                                +

                                                                                                                + realEscapeString() + + +

                                                                                                                + + + + + public + realEscapeString(string $string) : string|null + +
                                                                                                                +
                                                                                                                + +
                                                                                                                Parameters
                                                                                                                +
                                                                                                                +
                                                                                                                + $string + : string +
                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                + + + +
                                                                                                                +
                                                                                                                Return values
                                                                                                                + string|null +
                                                                                                                + +
                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                
                                                                                                                +        
                                                                                                                + +
                                                                                                                +
                                                                                                                + + + +
                                                                                                                +
                                                                                                                +
                                                                                                                + +
                                                                                                                + On this page + + +
                                                                                                                + +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                +
                                                                                                                +

                                                                                                                Search results

                                                                                                                + +
                                                                                                                +
                                                                                                                +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + + +
                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResult.html b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResult.html new file mode 100644 index 00000000000..7d984aee8af --- /dev/null +++ b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResult.html @@ -0,0 +1,1037 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                  +

                                                                                                                  phpDocumentor

                                                                                                                  + + + + + +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  + + +
                                                                                                                  +

                                                                                                                  + MydbMysqliResult + + +
                                                                                                                  + in package + +
                                                                                                                  + + + implements + MydbMysqliResultInterface + +

                                                                                                                  + +
                                                                                                                  + + +
                                                                                                                  + + + + + + +
                                                                                                                  + Tags + + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + author +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  Sergei Shilko contact@sshilko.com

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + license +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + see +
                                                                                                                  +
                                                                                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                  +
                                                                                                                  + access +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  protected

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + + +

                                                                                                                  + Table of Contents + + +

                                                                                                                  + + + +

                                                                                                                  + Interfaces + + +

                                                                                                                  +
                                                                                                                  +
                                                                                                                  MydbMysqliResultInterface
                                                                                                                  + + + + +

                                                                                                                  + Constants + + +

                                                                                                                  +
                                                                                                                  +
                                                                                                                  + MYSQLI_ASSOC + +  = \MYSQLI_ASSOC +
                                                                                                                  + +
                                                                                                                  + + +

                                                                                                                  + Properties + + +

                                                                                                                  +
                                                                                                                  +
                                                                                                                  + $errorMessage + +  : string|null +
                                                                                                                  + +
                                                                                                                  + $errorNumber + +  : int +
                                                                                                                  + +
                                                                                                                  + $fieldsCount + +  : int +
                                                                                                                  + +
                                                                                                                  + $result + +  : array<string|int, mixed>|null +
                                                                                                                  + +
                                                                                                                  + $warnings + +  : array<string|int, mixed> +
                                                                                                                  + +
                                                                                                                  + +

                                                                                                                  + Methods + + +

                                                                                                                  +
                                                                                                                  +
                                                                                                                  + __construct() + +  : mixed +
                                                                                                                  + +
                                                                                                                  + getError() + +  : string|null +
                                                                                                                  + +
                                                                                                                  + getFieldCount() + +  : int +
                                                                                                                  + +
                                                                                                                  + getResult() + +  : array<string|int, mixed>|null +
                                                                                                                  + +
                                                                                                                  + getWarnings() + +  : array<string|int, mixed> +
                                                                                                                  + +
                                                                                                                  + setErrorMessage() + +  : void +
                                                                                                                  + +
                                                                                                                  + setErrorNumber() + +  : void +
                                                                                                                  + +
                                                                                                                  + + + + + +
                                                                                                                  +

                                                                                                                  + Constants + + +

                                                                                                                  +
                                                                                                                  +

                                                                                                                  + MYSQLI_ASSOC + + +

                                                                                                                  + + + + + + protected + mixed + MYSQLI_ASSOC + = \MYSQLI_ASSOC + + + + + + + +
                                                                                                                  +
                                                                                                                  + + +
                                                                                                                  +

                                                                                                                  + Properties + + +

                                                                                                                  +
                                                                                                                  +

                                                                                                                  + $errorMessage + + + + +

                                                                                                                  + + + + + protected + string|null + $errorMessage + = null + + + + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + $errorNumber + + + + +

                                                                                                                  + + + + + protected + int + $errorNumber + = 0 + + + + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + $fieldsCount + + + + +

                                                                                                                  + + + + + protected + int + $fieldsCount + + + + + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + $result + + + + +

                                                                                                                  + + + + + protected + array<string|int, mixed>|null + $result + = null + + + + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + $warnings + + + + +

                                                                                                                  + + + + + protected + array<string|int, mixed> + $warnings + + + + + +
                                                                                                                  + Tags + + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + psalm-var +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  array<array-key, string>

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + phpcs:disable +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  SlevomatCodingStandard.Classes.RequireConstructorPropertyPromotion.RequiredConstructorPropertyPromotion

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +

                                                                                                                  + Methods + + +

                                                                                                                  +
                                                                                                                  +

                                                                                                                  + __construct() + + +

                                                                                                                  + + + + + public + __construct(mysqli_result|null $result, array<string|int, mixed> $warnings, int $fieldsCount) : mixed + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  Parameters
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + $result + : mysqli_result|null +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + $warnings + : array<string|int, mixed> +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + $fieldsCount + : int +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + +
                                                                                                                  + Tags + + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + psalm-param +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  array<array-key, string> $warnings

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + getError() + + +

                                                                                                                  + + + + + public + getError() : string|null + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  Return values
                                                                                                                  + string|null +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + getFieldCount() + + +

                                                                                                                  + + + + + public + getFieldCount() : int + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  Return values
                                                                                                                  + int +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + getResult() + + +

                                                                                                                  + + + + + public + getResult() : array<string|int, mixed>|null + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  Return values
                                                                                                                  + array<string|int, mixed>|null +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + getWarnings() + + +

                                                                                                                  + + + + + public + getWarnings() : array<string|int, mixed> + +
                                                                                                                  +
                                                                                                                  + + + +
                                                                                                                  + Tags + + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + psalm-return +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  array<array-key, string>

                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  Return values
                                                                                                                  + array<string|int, mixed> +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + setErrorMessage() + + +

                                                                                                                  + + + + + public + setErrorMessage(string $errorMessage) : void + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  Parameters
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + $errorMessage + : string +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  + setErrorNumber() + + +

                                                                                                                  + + + + + public + setErrorNumber(int $errorNumber) : void + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  Parameters
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + $errorNumber + : int +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + + + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  
                                                                                                                  +        
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + + + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  + On this page + + +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +

                                                                                                                  Search results

                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + + +
                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResultInterface.html b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResultInterface.html new file mode 100644 index 00000000000..f36f8c933e4 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbMysqli-MydbMysqliResultInterface.html @@ -0,0 +1,716 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                    +

                                                                                                                    phpDocumentor

                                                                                                                    + + + + + +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    + + +
                                                                                                                    +

                                                                                                                    + MydbMysqliResultInterface +
                                                                                                                    + in + +
                                                                                                                    +

                                                                                                                    + + + + + + +
                                                                                                                    + Tags + + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + author +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    Sergei Shilko contact@sshilko.com

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + license +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + see +
                                                                                                                    +
                                                                                                                    + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                    +
                                                                                                                    + access +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    protected

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + + +

                                                                                                                    + Table of Contents + + +

                                                                                                                    + + + + + + + + + + +

                                                                                                                    + Methods + + +

                                                                                                                    +
                                                                                                                    +
                                                                                                                    + __construct() + +  : mixed +
                                                                                                                    + +
                                                                                                                    + getError() + +  : string|null +
                                                                                                                    + +
                                                                                                                    + getFieldCount() + +  : int +
                                                                                                                    + +
                                                                                                                    + getResult() + +  : array<string|int, mixed>|null +
                                                                                                                    + +
                                                                                                                    + getWarnings() + +  : array<string|int, mixed> +
                                                                                                                    + +
                                                                                                                    + setErrorMessage() + +  : void +
                                                                                                                    + +
                                                                                                                    + setErrorNumber() + +  : void +
                                                                                                                    + +
                                                                                                                    + + + + + + +
                                                                                                                    +

                                                                                                                    + Methods + + +

                                                                                                                    +
                                                                                                                    +

                                                                                                                    + __construct() + + +

                                                                                                                    + + + + + public + __construct(mysqli_result|null $result, array<string|int, mixed> $warnings, int $fieldsCount) : mixed + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    Parameters
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + $result + : mysqli_result|null +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + $warnings + : array<string|int, mixed> +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + $fieldsCount + : int +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + +
                                                                                                                    + Tags + + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + psalm-param +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    array<array-key, string> $warnings

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + getError() + + +

                                                                                                                    + + + + + public + getError() : string|null + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    Return values
                                                                                                                    + string|null +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + getFieldCount() + + +

                                                                                                                    + + + + + public + getFieldCount() : int + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    Return values
                                                                                                                    + int +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + getResult() + + +

                                                                                                                    + + + + + public + getResult() : array<string|int, mixed>|null + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    Return values
                                                                                                                    + array<string|int, mixed>|null +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + getWarnings() + + +

                                                                                                                    + + + + + public + getWarnings() : array<string|int, mixed> + +
                                                                                                                    +
                                                                                                                    + + + +
                                                                                                                    + Tags + + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + psalm-return +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    array<array-key, string>

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    Return values
                                                                                                                    + array<string|int, mixed> +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + setErrorMessage() + + +

                                                                                                                    + + + + + public + setErrorMessage(string $errorMessage) : void + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    Parameters
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + $errorMessage + : string +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    + setErrorNumber() + + +

                                                                                                                    + + + + + public + setErrorNumber(int $errorNumber) : void + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    Parameters
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + $errorNumber + : int +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + + + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    
                                                                                                                    +        
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + + + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    + On this page + + +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    Search results

                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + + +
                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbMysqli.html b/php/phpdoc/classes/sql-MydbMysqli.html new file mode 100644 index 00000000000..6ec13955e24 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbMysqli.html @@ -0,0 +1,2934 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                      +

                                                                                                                      phpDocumentor

                                                                                                                      + + + + + +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      + + +
                                                                                                                      +

                                                                                                                      + MydbMysqli + + +
                                                                                                                      + in package + +
                                                                                                                      + + + implements + MydbMysqliInterface + +

                                                                                                                      + +
                                                                                                                      + + +
                                                                                                                      + + + +

                                                                                                                      Facade for php mysqli extension

                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + author +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      Sergei Shilko contact@sshilko.com

                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + license +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/class.mysqli + + +
                                                                                                                      +
                                                                                                                      + + + +

                                                                                                                      + Table of Contents + + +

                                                                                                                      + + + +

                                                                                                                      + Interfaces + + +

                                                                                                                      +
                                                                                                                      +
                                                                                                                      MydbMysqliInterface
                                                                                                                      + + + + +

                                                                                                                      + Constants + + +

                                                                                                                      +
                                                                                                                      +
                                                                                                                      + MYSQLI_INIT_COMMAND + +  = \MYSQLI_INIT_COMMAND +
                                                                                                                      +
                                                                                                                      Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
                                                                                                                      + +
                                                                                                                      + MYSQLI_OPT_CONNECT_TIMEOUT + +  = \MYSQLI_OPT_CONNECT_TIMEOUT +
                                                                                                                      +
                                                                                                                      Connect timeout in seconds
                                                                                                                      + +
                                                                                                                      + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + +  = \MYSQLI_OPT_NET_CMD_BUFFER_SIZE +
                                                                                                                      +
                                                                                                                      The size of the internal command/network buffer. Only valid for mysqlnd.
                                                                                                                      + +
                                                                                                                      + MYSQLI_OPT_NET_READ_BUFFER_SIZE + +  = \MYSQLI_OPT_NET_READ_BUFFER_SIZE +
                                                                                                                      +
                                                                                                                      Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.
                                                                                                                      + +
                                                                                                                      + MYSQLI_OPT_READ_TIMEOUT + +  = \MYSQLI_OPT_READ_TIMEOUT +
                                                                                                                      +
                                                                                                                      Command execution result timeout in seconds. Available as of PHP 7.2.0.
                                                                                                                      + +
                                                                                                                      + MYSQLI_REPORT_ALL + +  = \MYSQLI_REPORT_ALL +
                                                                                                                      +
                                                                                                                      Set all options on (report all), report all warnings/errors.
                                                                                                                      + +
                                                                                                                      + MYSQLI_REPORT_INDEX + +  = \MYSQLI_REPORT_INDEX +
                                                                                                                      +
                                                                                                                      Report if no index or bad index was used in a query.
                                                                                                                      + +
                                                                                                                      + MYSQLI_REPORT_STRICT + +  = \MYSQLI_REPORT_STRICT +
                                                                                                                      +
                                                                                                                      Throw a mysqli_sql_exception for errors instead of warnings.
                                                                                                                      + +
                                                                                                                      + MYSQLI_STORE_RESULT_COPY_DATA + +  = \MYSQLI_STORE_RESULT_COPY_DATA +
                                                                                                                      +
                                                                                                                      Copy results from the internal mysqlnd buffer into the PHP variables fetched.
                                                                                                                      + +
                                                                                                                      + MYSQLI_TRANS_COR_NO_RELEASE + +  = \MYSQLI_TRANS_COR_NO_RELEASE +
                                                                                                                      +
                                                                                                                      Appends "NO RELEASE" to mysqli_commit() or mysqli_rollback().
                                                                                                                      + +
                                                                                                                      + MYSQLI_TRANS_COR_RELEASE + +  = \MYSQLI_TRANS_COR_RELEASE +
                                                                                                                      +
                                                                                                                      Appends "RELEASE" to mysqli_commit() or mysqli_rollback().
                                                                                                                      + +
                                                                                                                      + MYSQLI_TRANS_START_READ_ONLY + +  = \MYSQLI_TRANS_START_READ_ONLY +
                                                                                                                      +
                                                                                                                      Start the transaction as "START TRANSACTION READ ONLY" with mysqli_begin_transaction().
                                                                                                                      + +
                                                                                                                      + MYSQLI_TRANS_START_READ_WRITE + +  = \MYSQLI_TRANS_START_READ_WRITE +
                                                                                                                      +
                                                                                                                      Start the transaction as "START TRANSACTION READ WRITE" with mysqli_begin_transaction().
                                                                                                                      + +
                                                                                                                      + SQL_MODE + +  = 'TRADITIONAL' +
                                                                                                                      +
                                                                                                                      Safe MySQL SQL_MODE
                                                                                                                      + +
                                                                                                                      + + +

                                                                                                                      + Properties + + +

                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $isConnected + +  : bool +
                                                                                                                      +
                                                                                                                      Flag indicating whether physical connection was established with remote server +Is connected to remove server
                                                                                                                      + +
                                                                                                                      + $isTransaction + +  : bool +
                                                                                                                      +
                                                                                                                      Flag indicating whether SQL transaction was started +WARNING: best-effort, only guaranteed when library is used correctly +Is transaction started
                                                                                                                      + +
                                                                                                                      + $mysqli + +  : mysqli|null +
                                                                                                                      +
                                                                                                                      Mysqli instance +The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above
                                                                                                                      + +
                                                                                                                      + +

                                                                                                                      + Methods + + +

                                                                                                                      +
                                                                                                                      +
                                                                                                                      + __construct() + +  : mixed +
                                                                                                                      + +
                                                                                                                      + autocommit() + +  : bool +
                                                                                                                      + +
                                                                                                                      + beginTransactionReadonly() + +  : bool +
                                                                                                                      + +
                                                                                                                      + beginTransactionReadwrite() + +  : bool +
                                                                                                                      + +
                                                                                                                      + close() + +  : bool +
                                                                                                                      + +
                                                                                                                      + commit() + +  : bool +
                                                                                                                      + +
                                                                                                                      + commitAndRelease() + +  : bool +
                                                                                                                      +
                                                                                                                      Commit transaction and release connection from server side
                                                                                                                      + +
                                                                                                                      + extractServerResponse() + +  : mysqli_result|null +
                                                                                                                      + +
                                                                                                                      + getAffectedRows() + +  : int|null +
                                                                                                                      + +
                                                                                                                      + getConnectErrno() + +  : int|null +
                                                                                                                      + +
                                                                                                                      + getConnectError() + +  : string|null +
                                                                                                                      + +
                                                                                                                      + getErrNo() + +  : int|null +
                                                                                                                      + +
                                                                                                                      + getError() + +  : string|null +
                                                                                                                      + +
                                                                                                                      + getInsertId() + +  : int|string|null +
                                                                                                                      + +
                                                                                                                      + getMysqli() + +  : mysqli|null +
                                                                                                                      + +
                                                                                                                      + getWarnings() + +  : array<string|int, mixed> +
                                                                                                                      + +
                                                                                                                      + init() + +  : bool +
                                                                                                                      +
                                                                                                                      Allocate mysqli resource instance, no physical connection to remote is done
                                                                                                                      + +
                                                                                                                      + isConnected() + +  : bool +
                                                                                                                      + +
                                                                                                                      + isServerGone() + +  : bool +
                                                                                                                      + +
                                                                                                                      + isTransactionOpen() + +  : bool +
                                                                                                                      + +
                                                                                                                      + mysqliReport() + +  : bool +
                                                                                                                      + +
                                                                                                                      + readServerResponse() + +  : MydbMysqliResult|null +
                                                                                                                      +
                                                                                                                      React to mysqli resource changes after query/command execution
                                                                                                                      + +
                                                                                                                      + realConnect() + +  : bool +
                                                                                                                      + +
                                                                                                                      + realEscapeString() + +  : string|null +
                                                                                                                      + +
                                                                                                                      + realQuery() + +  : bool +
                                                                                                                      + +
                                                                                                                      + rollback() + +  : bool +
                                                                                                                      + +
                                                                                                                      + setTransactionIsolationLevel() + +  : bool +
                                                                                                                      + +
                                                                                                                      + setTransportOptions() + +  : bool +
                                                                                                                      +
                                                                                                                      Set various options that affect mysqli resource, before connection is established
                                                                                                                      + +
                                                                                                                      + getFieldCount() + +  : int|null +
                                                                                                                      +
                                                                                                                      Returns fields count caused by query execution +Requires store_result to be called first
                                                                                                                      + +
                                                                                                                      + getWarningCount() + +  : int|null +
                                                                                                                      +
                                                                                                                      Returns warnings caused by query execution +Requires store_result to be called first
                                                                                                                      + +
                                                                                                                      + + + + + +
                                                                                                                      +

                                                                                                                      + Constants + + +

                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_INIT_COMMAND + + +

                                                                                                                      + + + +

                                                                                                                      Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.

                                                                                                                      + + + public + mixed + MYSQLI_INIT_COMMAND + = \MYSQLI_INIT_COMMAND + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + +
                                                                                                                      +

                                                                                                                      + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + + +

                                                                                                                      + + + +

                                                                                                                      The size of the internal command/network buffer. Only valid for mysqlnd.

                                                                                                                      + + + public + mixed + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + = \MYSQLI_OPT_NET_CMD_BUFFER_SIZE + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_OPT_NET_READ_BUFFER_SIZE + + +

                                                                                                                      + + + +

                                                                                                                      Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.

                                                                                                                      + + + public + mixed + MYSQLI_OPT_NET_READ_BUFFER_SIZE + = \MYSQLI_OPT_NET_READ_BUFFER_SIZE + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_OPT_READ_TIMEOUT + + +

                                                                                                                      + + + +

                                                                                                                      Command execution result timeout in seconds. Available as of PHP 7.2.0.

                                                                                                                      + + + public + mixed + MYSQLI_OPT_READ_TIMEOUT + = \MYSQLI_OPT_READ_TIMEOUT + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + + + +
                                                                                                                      +

                                                                                                                      + MYSQLI_STORE_RESULT_COPY_DATA + + +

                                                                                                                      + + + +

                                                                                                                      Copy results from the internal mysqlnd buffer into the PHP variables fetched.

                                                                                                                      + + + public + mixed + MYSQLI_STORE_RESULT_COPY_DATA + = \MYSQLI_STORE_RESULT_COPY_DATA + + + +

                                                                                                                      By default, mysqlnd will use a reference logic to avoid copying and duplicating results +held in memory. For certain result sets, for example, result sets with many small rows, +the copy approach can reduce the overall memory usage because PHP variables holding +results may be released earlier (available with mysqlnd only)

                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_TRANS_COR_NO_RELEASE + + +

                                                                                                                      + + + +

                                                                                                                      Appends "NO RELEASE" to mysqli_commit() or mysqli_rollback().

                                                                                                                      + + + public + mixed + MYSQLI_TRANS_COR_NO_RELEASE + = \MYSQLI_TRANS_COR_NO_RELEASE + + + +

                                                                                                                      The NO RELEASE clause asks the server to not disconnect the current client session +after terminating the current transaction

                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://dev.mysql.com/doc/refman/8.0/en/commit.html + + +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_TRANS_COR_RELEASE + + +

                                                                                                                      + + + +

                                                                                                                      Appends "RELEASE" to mysqli_commit() or mysqli_rollback().

                                                                                                                      + + + public + mixed + MYSQLI_TRANS_COR_RELEASE + = \MYSQLI_TRANS_COR_RELEASE + + + +

                                                                                                                      The RELEASE clause causes the server to disconnect the current client session +after terminating the current transaction

                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://dev.mysql.com/doc/refman/8.0/en/commit.html + + +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_TRANS_START_READ_ONLY + + +

                                                                                                                      + + + +

                                                                                                                      Start the transaction as "START TRANSACTION READ ONLY" with mysqli_begin_transaction().

                                                                                                                      + + + public + mixed + MYSQLI_TRANS_START_READ_ONLY + = \MYSQLI_TRANS_START_READ_ONLY + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + MYSQLI_TRANS_START_READ_WRITE + + +

                                                                                                                      + + + +

                                                                                                                      Start the transaction as "START TRANSACTION READ WRITE" with mysqli_begin_transaction().

                                                                                                                      + + + public + mixed + MYSQLI_TRANS_START_READ_WRITE + = \MYSQLI_TRANS_START_READ_WRITE + + + + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.constants.php + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + +
                                                                                                                      + + +
                                                                                                                      +

                                                                                                                      + Properties + + +

                                                                                                                      +
                                                                                                                      +

                                                                                                                      + $isConnected + + + + +

                                                                                                                      + + +

                                                                                                                      Flag indicating whether physical connection was established with remote server +Is connected to remove server

                                                                                                                      + + + protected + bool + $isConnected + = false + + + + + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + $isTransaction + + + + +

                                                                                                                      + + +

                                                                                                                      Flag indicating whether SQL transaction was started +WARNING: best-effort, only guaranteed when library is used correctly +Is transaction started

                                                                                                                      + + + protected + bool + $isTransaction + = false + + + + + +
                                                                                                                      + +
                                                                                                                      + +
                                                                                                                      +

                                                                                                                      + Methods + + +

                                                                                                                      +
                                                                                                                      +

                                                                                                                      + __construct() + + +

                                                                                                                      + + + + + public + __construct([mysqli|null $resource = null ]) : mixed + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $resource + : mysqli|null + = null
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + autocommit() + + +

                                                                                                                      + + + + + public + autocommit(bool $enable) : bool + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $enable + : bool +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      + + +
                                                                                                                      +

                                                                                                                      + close() + + +

                                                                                                                      + + + + + public + close() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + commit() + + +

                                                                                                                      + + + + + public + commit() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + commitAndRelease() + + +

                                                                                                                      + + +

                                                                                                                      Commit transaction and release connection from server side

                                                                                                                      + + + public + commitAndRelease() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + extractServerResponse() + + +

                                                                                                                      + + + + + public + extractServerResponse(MydbEnvironmentInterface $environment, array<int, string> &$events) : mysqli_result|null + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $environment + : MydbEnvironmentInterface +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $events + : array<int, string> +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + phpcs:disable +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference

                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + mysqli_result|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getAffectedRows() + + +

                                                                                                                      + + + + + public + getAffectedRows() : int|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getConnectErrno() + + +

                                                                                                                      + + + + + public + getConnectErrno() : int|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getConnectError() + + +

                                                                                                                      + + + + + public + getConnectError() : string|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + string|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getErrNo() + + +

                                                                                                                      + + + + + public + getErrNo() : int|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getError() + + +

                                                                                                                      + + + + + public + getError() : string|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + string|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getInsertId() + + +

                                                                                                                      + + + + + public + getInsertId() : int|string|null + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + phpcs:disable +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint

                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|string|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getMysqli() + + +

                                                                                                                      + + + + + public + getMysqli() : mysqli|null + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + mysqli|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getWarnings() + + +

                                                                                                                      + + + + + public + getWarnings() : array<string|int, mixed> + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + array<string|int, mixed> +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + init() + + +

                                                                                                                      + + +

                                                                                                                      Allocate mysqli resource instance, no physical connection to remote is done

                                                                                                                      + + + public + init() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + isConnected() + + +

                                                                                                                      + + + + + public + isConnected() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + isServerGone() + + +

                                                                                                                      + + + + + public + isServerGone() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + isTransactionOpen() + + +

                                                                                                                      + + + + + public + isTransactionOpen() : bool + +
                                                                                                                      +
                                                                                                                      + + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + mysqliReport() + + +

                                                                                                                      + + + + + public + mysqliReport(int $level) : bool + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $level + : int +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      + +
                                                                                                                      +

                                                                                                                      + realConnect() + + +

                                                                                                                      + + + + + public + realConnect(string $host, string $username, string $password, string $dbname, int|null $port, string|null $socket, int $flags) : bool + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $host + : string +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $username + : string +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $password + : string +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $dbname + : string +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $port + : int|null +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $socket + : string|null +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $flags + : int +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      + + + +
                                                                                                                      +

                                                                                                                      + setTransactionIsolationLevel() + + +

                                                                                                                      + + + + + public + setTransactionIsolationLevel(string $level) : bool + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $level + : string +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + setTransportOptions() + + +

                                                                                                                      + + +

                                                                                                                      Set various options that affect mysqli resource, before connection is established

                                                                                                                      + + + public + setTransportOptions(MydbOptionsInterface $options, MydbEnvironmentInterface $environment) : bool + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      Parameters
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + $options + : MydbOptionsInterface +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + $environment + : MydbEnvironmentInterface +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + https://www.php.net/manual/en/mysqli.options.php + + +
                                                                                                                      +
                                                                                                                      + throws +
                                                                                                                      +
                                                                                                                      + EnvironmentException + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + bool +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getFieldCount() + + +

                                                                                                                      + + +

                                                                                                                      Returns fields count caused by query execution +Requires store_result to be called first

                                                                                                                      + + + protected + getFieldCount() : int|null + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + mysqli::store_result() + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      + getWarningCount() + + +

                                                                                                                      + + +

                                                                                                                      Returns warnings caused by query execution +Requires store_result to be called first

                                                                                                                      + + + protected + getWarningCount() : int|null + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      + Tags + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + see +
                                                                                                                      +
                                                                                                                      + mysqli::store_result() + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      Return values
                                                                                                                      + int|null +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      
                                                                                                                      +        
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + + + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + On this page + + +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      +

                                                                                                                      Search results

                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + + +
                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbMysqliInterface.html b/php/phpdoc/classes/sql-MydbMysqliInterface.html new file mode 100644 index 00000000000..f4b866159c6 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbMysqliInterface.html @@ -0,0 +1,1663 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                        +

                                                                                                                        phpDocumentor

                                                                                                                        + + + + + +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        + + +
                                                                                                                        +

                                                                                                                        + MydbMysqliInterface + + extends + MydbMysqliEscapeStringInterface +
                                                                                                                        + in + +
                                                                                                                        +

                                                                                                                        + + + + + + +
                                                                                                                        + Tags + + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + author +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        Sergei Shilko contact@sshilko.com

                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + license +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + see +
                                                                                                                        +
                                                                                                                        + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                        +
                                                                                                                        + + + +

                                                                                                                        + Table of Contents + + +

                                                                                                                        + + + + + + + + + + +

                                                                                                                        + Methods + + +

                                                                                                                        +
                                                                                                                        +
                                                                                                                        + autocommit() + +  : bool +
                                                                                                                        + +
                                                                                                                        + beginTransactionReadonly() + +  : bool +
                                                                                                                        + +
                                                                                                                        + beginTransactionReadwrite() + +  : bool +
                                                                                                                        + +
                                                                                                                        + close() + +  : bool +
                                                                                                                        + +
                                                                                                                        + commit() + +  : bool +
                                                                                                                        + +
                                                                                                                        + commitAndRelease() + +  : bool +
                                                                                                                        + +
                                                                                                                        + extractServerResponse() + +  : mysqli_result|null +
                                                                                                                        + +
                                                                                                                        + getAffectedRows() + +  : int|null +
                                                                                                                        + +
                                                                                                                        + getConnectErrno() + +  : int|null +
                                                                                                                        + +
                                                                                                                        + getConnectError() + +  : string|null +
                                                                                                                        + +
                                                                                                                        + getErrNo() + +  : int|null +
                                                                                                                        + +
                                                                                                                        + getError() + +  : string|null +
                                                                                                                        + +
                                                                                                                        + getInsertId() + +  : int|string|null +
                                                                                                                        + +
                                                                                                                        + getMysqli() + +  : mysqli|null +
                                                                                                                        + +
                                                                                                                        + getWarnings() + +  : array<string|int, mixed> +
                                                                                                                        + +
                                                                                                                        + init() + +  : bool +
                                                                                                                        + +
                                                                                                                        + isConnected() + +  : bool +
                                                                                                                        + +
                                                                                                                        + isServerGone() + +  : bool +
                                                                                                                        + +
                                                                                                                        + isTransactionOpen() + +  : bool +
                                                                                                                        + +
                                                                                                                        + mysqliReport() + +  : bool +
                                                                                                                        + +
                                                                                                                        + readServerResponse() + +  : MydbMysqliResultInterface|null +
                                                                                                                        + +
                                                                                                                        + realConnect() + +  : bool +
                                                                                                                        + +
                                                                                                                        + realEscapeString() + +  : string|null +
                                                                                                                        + +
                                                                                                                        + realQuery() + +  : bool +
                                                                                                                        + +
                                                                                                                        + rollback() + +  : bool +
                                                                                                                        + +
                                                                                                                        + setTransactionIsolationLevel() + +  : bool +
                                                                                                                        + +
                                                                                                                        + setTransportOptions() + +  : bool +
                                                                                                                        + +
                                                                                                                        + + + + + + +
                                                                                                                        +

                                                                                                                        + Methods + + +

                                                                                                                        +
                                                                                                                        +

                                                                                                                        + autocommit() + + +

                                                                                                                        + + + + + public + autocommit(bool $enable) : bool + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $enable + : bool +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + beginTransactionReadonly() + + +

                                                                                                                        + + + + + public + beginTransactionReadonly() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + beginTransactionReadwrite() + + +

                                                                                                                        + + + + + public + beginTransactionReadwrite() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + close() + + +

                                                                                                                        + + + + + public + close() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + commit() + + +

                                                                                                                        + + + + + public + commit() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + commitAndRelease() + + +

                                                                                                                        + + + + + public + commitAndRelease() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + extractServerResponse() + + +

                                                                                                                        + + + + + public + extractServerResponse(MydbEnvironmentInterface $environment, array<int, string> &$events) : mysqli_result|null + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $environment + : MydbEnvironmentInterface +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $events + : array<int, string> +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + +
                                                                                                                        + Tags + + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + phpcs:disable +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference

                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + mysqli_result|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getAffectedRows() + + +

                                                                                                                        + + + + + public + getAffectedRows() : int|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + int|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getConnectErrno() + + +

                                                                                                                        + + + + + public + getConnectErrno() : int|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + int|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getConnectError() + + +

                                                                                                                        + + + + + public + getConnectError() : string|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + string|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getErrNo() + + +

                                                                                                                        + + + + + public + getErrNo() : int|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + int|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getError() + + +

                                                                                                                        + + + + + public + getError() : string|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + string|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getInsertId() + + +

                                                                                                                        + + + + + public + getInsertId() : int|string|null + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        + Tags + + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + phpcs:disable +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint

                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + int|string|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getMysqli() + + +

                                                                                                                        + + + + + public + getMysqli() : mysqli|null + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + mysqli|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + getWarnings() + + +

                                                                                                                        + + + + + public + getWarnings() : array<string|int, mixed> + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + array<string|int, mixed> +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + init() + + +

                                                                                                                        + + + + + public + init() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + isConnected() + + +

                                                                                                                        + + + + + public + isConnected() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + isServerGone() + + +

                                                                                                                        + + + + + public + isServerGone() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + isTransactionOpen() + + +

                                                                                                                        + + + + + public + isTransactionOpen() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + mysqliReport() + + +

                                                                                                                        + + + + + public + mysqliReport(int $level) : bool + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $level + : int +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        + +
                                                                                                                        +

                                                                                                                        + realConnect() + + +

                                                                                                                        + + + + + public + realConnect(string $host, string $username, string $password, string $dbname, int|null $port, string|null $socket, int $flags) : bool + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $host + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $username + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $password + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $dbname + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $port + : int|null +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $socket + : string|null +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + $flags + : int +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + realEscapeString() + + +

                                                                                                                        + + + + + public + realEscapeString(string $string) : string|null + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $string + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + string|null +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + realQuery() + + +

                                                                                                                        + + + + + public + realQuery(string $query) : bool + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $query + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + rollback() + + +

                                                                                                                        + + + + + public + rollback() : bool + +
                                                                                                                        +
                                                                                                                        + + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        + setTransactionIsolationLevel() + + +

                                                                                                                        + + + + + public + setTransactionIsolationLevel(string $level) : bool + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        Parameters
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + $level + : string +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        Return values
                                                                                                                        + bool +
                                                                                                                        + +
                                                                                                                        + +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        
                                                                                                                        +        
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + + + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        + On this page + + +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +

                                                                                                                        Search results

                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbOptions.html b/php/phpdoc/classes/sql-MydbOptions.html new file mode 100644 index 00000000000..1e0e26d01d3 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbOptions.html @@ -0,0 +1,2669 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                          +

                                                                                                                          phpDocumentor

                                                                                                                          + + + + + +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          +

                                                                                                                          + MydbOptions + + +
                                                                                                                          + in package + +
                                                                                                                          + + + implements + MydbOptionsInterface + +

                                                                                                                          + +
                                                                                                                          + + +
                                                                                                                          + + + + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + author +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          Sergei Shilko contact@sshilko.com

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + license +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                          +
                                                                                                                          + + + +

                                                                                                                          + Table of Contents + + +

                                                                                                                          + + + +

                                                                                                                          + Interfaces + + +

                                                                                                                          +
                                                                                                                          +
                                                                                                                          MydbOptionsInterface
                                                                                                                          + + + + +

                                                                                                                          + Constants + + +

                                                                                                                          +
                                                                                                                          +
                                                                                                                          + NET_CMD_BUFFER_SIZE_MAX + +  = 16384 +
                                                                                                                          + +
                                                                                                                          + NET_CMD_BUFFER_SIZE_MIN + +  = 4096 +
                                                                                                                          + +
                                                                                                                          + NET_READ_BUFFER_MAX + +  = 131072 +
                                                                                                                          + +
                                                                                                                          + NET_READ_BUFFER_MIN + +  = 8192 +
                                                                                                                          + +
                                                                                                                          + + +

                                                                                                                          + Properties + + +

                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $autocommit + +  : bool +
                                                                                                                          +
                                                                                                                          Recommended defaults: +false for rw connection +true for ro connection +true for async connection
                                                                                                                          + +
                                                                                                                          + $charset + +  : string +
                                                                                                                          + +
                                                                                                                          + $clientErrorLevel + +  : int +
                                                                                                                          +
                                                                                                                          Sets mysqli error reporting mode
                                                                                                                          + +
                                                                                                                          + $connectTimeout + +  : int +
                                                                                                                          +
                                                                                                                          MySql client connection timeout, seconds
                                                                                                                          + +
                                                                                                                          + $errorReporting + +  : int +
                                                                                                                          + +
                                                                                                                          + $networkBufferSize + +  : int +
                                                                                                                          +
                                                                                                                          Internal network buffer of mysqlnd.net_cmd_buffer_size bytes for every connection
                                                                                                                          + +
                                                                                                                          + $networkReadBuffer + +  : int +
                                                                                                                          +
                                                                                                                          More memory for better performance
                                                                                                                          + +
                                                                                                                          + $nonInteractiveTimeout + +  : int +
                                                                                                                          +
                                                                                                                          The number of seconds the server waits for activity +on a non-interactive TCP/IP or UNIX File connection before closing it
                                                                                                                          + +
                                                                                                                          + $persistent + +  : bool +
                                                                                                                          +
                                                                                                                          Transaction block will also carry over to the next script +which uses that connection if script execution ends before the transaction block does
                                                                                                                          + +
                                                                                                                          + $readonly + +  : bool +
                                                                                                                          +
                                                                                                                          Readonly connection
                                                                                                                          + +
                                                                                                                          + $readTimeout + +  : int +
                                                                                                                          +
                                                                                                                          The timeout in seconds for each attempt to read from the server.
                                                                                                                          + +
                                                                                                                          + $serverSideSelectTimeout + +  : int +
                                                                                                                          +
                                                                                                                          The execution timeout ONLY APPLIES TO "SELECT" statements, seconds +X > 0, enabled +X = 0, not enabled.
                                                                                                                          + +
                                                                                                                          + $timeZone + +  : string +
                                                                                                                          +
                                                                                                                          Set session time zone
                                                                                                                          + +
                                                                                                                          + $transactionIsolationLevel + +  : string|null +
                                                                                                                          +
                                                                                                                          Transaction isolation is one of the foundations of database processing.
                                                                                                                          + +
                                                                                                                          + +

                                                                                                                          + Methods + + +

                                                                                                                          +
                                                                                                                          +
                                                                                                                          + getCharset() + +  : string +
                                                                                                                          + +
                                                                                                                          + getClientErrorLevel() + +  : int +
                                                                                                                          + +
                                                                                                                          + getConnectTimeout() + +  : int +
                                                                                                                          + +
                                                                                                                          + getErrorReporting() + +  : int +
                                                                                                                          + +
                                                                                                                          + getNetworkBufferSize() + +  : int +
                                                                                                                          + +
                                                                                                                          + getNetworkReadBuffer() + +  : int +
                                                                                                                          + +
                                                                                                                          + getNonInteractiveTimeout() + +  : int +
                                                                                                                          + +
                                                                                                                          + getReadTimeout() + +  : int +
                                                                                                                          + +
                                                                                                                          + getServerSideSelectTimeout() + +  : int +
                                                                                                                          + +
                                                                                                                          + getTimeZone() + +  : string +
                                                                                                                          + +
                                                                                                                          + getTransactionIsolationLevel() + +  : string|null +
                                                                                                                          + +
                                                                                                                          + isAutocommit() + +  : bool +
                                                                                                                          + +
                                                                                                                          + isPersistent() + +  : bool +
                                                                                                                          + +
                                                                                                                          + isReadonly() + +  : bool +
                                                                                                                          + +
                                                                                                                          + setAutocommit() + +  : void +
                                                                                                                          + +
                                                                                                                          + setCharset() + +  : void +
                                                                                                                          + +
                                                                                                                          + setClientErrorLevel() + +  : void +
                                                                                                                          + +
                                                                                                                          + setConnectTimeout() + +  : void +
                                                                                                                          + +
                                                                                                                          + setErrorReporting() + +  : void +
                                                                                                                          + +
                                                                                                                          + setNetworkBufferSize() + +  : void +
                                                                                                                          + +
                                                                                                                          + setNetworkReadBuffer() + +  : void +
                                                                                                                          + +
                                                                                                                          + setNonInteractiveTimeout() + +  : void +
                                                                                                                          + +
                                                                                                                          + setPersistent() + +  : void +
                                                                                                                          + +
                                                                                                                          + setReadonly() + +  : void +
                                                                                                                          + +
                                                                                                                          + setReadTimeout() + +  : void +
                                                                                                                          + +
                                                                                                                          + setServerSideSelectTimeout() + +  : void +
                                                                                                                          + +
                                                                                                                          + setTimeZone() + +  : void +
                                                                                                                          + +
                                                                                                                          + setTransactionIsolationLevel() + +  : void +
                                                                                                                          + +
                                                                                                                          + + + + + +
                                                                                                                          +

                                                                                                                          + Constants + + +

                                                                                                                          +
                                                                                                                          +

                                                                                                                          + NET_CMD_BUFFER_SIZE_MAX + + +

                                                                                                                          + + + + + + protected + mixed + NET_CMD_BUFFER_SIZE_MAX + = 16384 + + + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + NET_CMD_BUFFER_SIZE_MIN + + +

                                                                                                                          + + + + + + protected + mixed + NET_CMD_BUFFER_SIZE_MIN + = 4096 + + + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + NET_READ_BUFFER_MAX + + +

                                                                                                                          + + + + + + protected + mixed + NET_READ_BUFFER_MAX + = 131072 + + + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + NET_READ_BUFFER_MIN + + +

                                                                                                                          + + + + + + protected + mixed + NET_READ_BUFFER_MIN + = 8192 + + + + + + + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          +

                                                                                                                          + Properties + + +

                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $autocommit + + + + +

                                                                                                                          + + +

                                                                                                                          Recommended defaults: +false for rw connection +true for ro connection +true for async connection

                                                                                                                          + + + protected + bool + $autocommit + = false + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $charset + + + + +

                                                                                                                          + + + + + protected + string + $charset + = 'utf8mb4' + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $clientErrorLevel + + + + +

                                                                                                                          + + +

                                                                                                                          Sets mysqli error reporting mode

                                                                                                                          + + + protected + int + $clientErrorLevel + = \sql\MydbMysqli::MYSQLI_REPORT_ALL ^ \sql\MydbMysqli::MYSQLI_REPORT_STRICT ^ \sql\MydbMysqli::MYSQLI_REPORT_INDEX + +
                                                                                                                          +

                                                                                                                          =8.1.0 The default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. +< 8.1.0 MYSQLI_REPORT_OFF.

                                                                                                                          +
                                                                                                                          +

                                                                                                                          MYSQLI_REPORT_OFF Turns reporting off +MYSQLI_REPORT_ERROR Report errors from mysqli function calls +MYSQLI_REPORT_STRICT Throw mysqli_sql_exception for errors instead of warnings +MYSQLI_REPORT_INDEX Report if no index or bad index was used in a query +MYSQLI_REPORT_ALL Set all options (report all)

                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://www.php.net/manual/en/function.mysqli-report.php + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $connectTimeout + + + + +

                                                                                                                          + + +

                                                                                                                          MySql client connection timeout, seconds

                                                                                                                          + + + protected + int + $connectTimeout + = 5 + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $errorReporting + + + + +

                                                                                                                          + + + + + protected + int + $errorReporting + = \E_ALL & ~\E_WARNING & ~\E_NOTICE + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $networkBufferSize + + + + +

                                                                                                                          + + +

                                                                                                                          Internal network buffer of mysqlnd.net_cmd_buffer_size bytes for every connection

                                                                                                                          + + + protected + int + $networkBufferSize + = 6144 + +

                                                                                                                          Scope: connection.

                                                                                                                          +

                                                                                                                          Number of network command buffer extensions while sending commands from PHP to MySQL.

                                                                                                                          +

                                                                                                                          mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes +for every connection. +If a MySQL Client Server protocol command, for example, COM_QUERY ("normal&quot query), +does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command. +Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one.

                                                                                                                          +

                                                                                                                          If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes +for almost every connection, you should consider to increase the default size to avoid re-allocations.

                                                                                                                          +

                                                                                                                          The default can set either through the php.ini setting mysqlnd.net_cmd_buffer_size +or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

                                                                                                                          +

                                                                                                                          It is recommended to set the buffer size to no less than 4096 bytes because mysqlnd also uses +it when reading certain communication packet from MySQL.

                                                                                                                          +

                                                                                                                          As of PHP 5.3.2 mysqlnd does not allow setting buffers smaller than 4096 bytes.

                                                                                                                          +

                                                                                                                          Default 4096

                                                                                                                          +

                                                                                                                          More memory usage, in exchange for better performance

                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          mysqlnd.net_cmd_buffer_size

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + http://php.net/manual/en/mysqlnd.config.php + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $networkReadBuffer + + + + +

                                                                                                                          + + +

                                                                                                                          More memory for better performance

                                                                                                                          + + + protected + int + $networkReadBuffer + = 49152 + +

                                                                                                                          Maximum read chunk size in bytes when reading the body of a MySQL command packet +The MySQL client server protocol encapsulates all its commands in packets. +The packets consist of a small header and a body with the actual payload

                                                                                                                          +

                                                                                                                          If a packet body is larger than mysqlnd.net_read_buffer_size bytes, +mysqlnd has to call read() multiple times

                                                                                                                          +

                                                                                                                          This buffer controls how many bytes mysqlnd fetches from the PHP streams with one call. +If a result set has less than 32kB in size, mysqlnd will call the PHP streams network +functions only once, if it is larger more calls are needed

                                                                                                                          +

                                                                                                                          Default 32768

                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          mysqlnd.net_read_buffer_size

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + http://php.net/manual/en/mysqlnd.config.php + + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + http://blog.ulf-wendel.de/2007/php-mysqlnd-saves-40-memory-finally-new-tuning-options/ + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $nonInteractiveTimeout + + + + +

                                                                                                                          + + +

                                                                                                                          The number of seconds the server waits for activity +on a non-interactive TCP/IP or UNIX File connection before closing it

                                                                                                                          + + + protected + int + $nonInteractiveTimeout + = 7200 + + + + + +
                                                                                                                          + +
                                                                                                                          +

                                                                                                                          + $readonly + + + + +

                                                                                                                          + + +

                                                                                                                          Readonly connection

                                                                                                                          + + + protected + bool + $readonly + = false + + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $readTimeout + + + + +

                                                                                                                          + + +

                                                                                                                          The timeout in seconds for each attempt to read from the server.

                                                                                                                          + + + protected + int + $readTimeout + = 90 + + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://dev.mysql.com/doc/c-api/8.0/en/mysql-options.html + + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://github.com/php/php-src/blob/12ab4cbd00e0dae52a5db98dda6da885acb408f6/ + +

                                                                                                                          ext/mysqli/mysqli.c#L654

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://github.com/php/php-src/blob/a03c1ed7aa2325d91595dcf9371297ab45543517/ + +

                                                                                                                          ext/mysqli/tests/mysqli_constants.phpt#L24

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          + +
                                                                                                                          +

                                                                                                                          + $timeZone + + + + +

                                                                                                                          + + +

                                                                                                                          Set session time zone

                                                                                                                          + + + protected + string + $timeZone + = 'UTC' + +

                                                                                                                          SET time_zone = timezone;

                                                                                                                          +
                                                                                                                            +
                                                                                                                          • As the value 'SYSTEM', indicating that the server time zone is the same as the system time zone.
                                                                                                                          • +
                                                                                                                          • As a string, an offset from UTC of the form [H]H:MM, prefixed with a + or -, such as '+10:00', '-6:00' +Prior to MySQL 8.0.19, this value had to be in the range '-12:59' to '+13:00'
                                                                                                                          • +
                                                                                                                          • As a named time zone, such as 'Europe/Helsinki', 'US/Eastern', 'MET', or 'UTC'.
                                                                                                                          • +
                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + $transactionIsolationLevel + + + + +

                                                                                                                          + + +

                                                                                                                          Transaction isolation is one of the foundations of database processing.

                                                                                                                          + + + protected + string|null + $transactionIsolationLevel + = null + +

                                                                                                                          Isolation is the I in the acronym ACID; the isolation level is the setting that fine-tunes +the balance between performance and reliability, consistency, and reproducibility of results +when multiple transactions are making changes and performing queries at the same time.

                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + see +
                                                                                                                          +
                                                                                                                          + https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +

                                                                                                                          + Methods + + +

                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getCharset() + + +

                                                                                                                          + + + + + public + getCharset() : string + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + string +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getClientErrorLevel() + + +

                                                                                                                          + + + + + public + getClientErrorLevel() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getConnectTimeout() + + +

                                                                                                                          + + + + + public + getConnectTimeout() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getErrorReporting() + + +

                                                                                                                          + + + + + public + getErrorReporting() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getNetworkBufferSize() + + +

                                                                                                                          + + + + + public + getNetworkBufferSize() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getNetworkReadBuffer() + + +

                                                                                                                          + + + + + public + getNetworkReadBuffer() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getNonInteractiveTimeout() + + +

                                                                                                                          + + + + + public + getNonInteractiveTimeout() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getReadTimeout() + + +

                                                                                                                          + + + + + public + getReadTimeout() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getServerSideSelectTimeout() + + +

                                                                                                                          + + + + + public + getServerSideSelectTimeout() : int + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + int +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getTimeZone() + + +

                                                                                                                          + + + + + public + getTimeZone() : string + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + string +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + getTransactionIsolationLevel() + + +

                                                                                                                          + + + + + public + getTransactionIsolationLevel() : string|null + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + string|null +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + isAutocommit() + + +

                                                                                                                          + + + + + public + isAutocommit() : bool + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + bool +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + isPersistent() + + +

                                                                                                                          + + + + + public + isPersistent() : bool + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + bool +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + isReadonly() + + +

                                                                                                                          + + + + + public + isReadonly() : bool + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          Return values
                                                                                                                          + bool +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setAutocommit() + + +

                                                                                                                          + + + + + public + setAutocommit(bool $autocommit) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $autocommit + : bool +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setCharset() + + +

                                                                                                                          + + + + + public + setCharset(string $charset) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $charset + : string +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setClientErrorLevel() + + +

                                                                                                                          + + + + + public + setClientErrorLevel(int $mysqliReport) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $mysqliReport + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + throws +
                                                                                                                          +
                                                                                                                          + OptionException + + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setConnectTimeout() + + +

                                                                                                                          + + + + + public + setConnectTimeout(int $seconds) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $seconds + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setErrorReporting() + + +

                                                                                                                          + + + + + public + setErrorReporting(int $errorReporting) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $errorReporting + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setNetworkBufferSize() + + +

                                                                                                                          + + + + + public + setNetworkBufferSize(int $bytes) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $bytes + : int +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          bytes

                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + throws +
                                                                                                                          +
                                                                                                                          + OptionException + + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setNetworkReadBuffer() + + +

                                                                                                                          + + + + + public + setNetworkReadBuffer(int $bytes) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $bytes + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          + Tags + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + throws +
                                                                                                                          +
                                                                                                                          + OptionException + + +
                                                                                                                          +
                                                                                                                          + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setNonInteractiveTimeout() + + +

                                                                                                                          + + + + + public + setNonInteractiveTimeout(int $nonInteractiveTimeout) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $nonInteractiveTimeout + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setPersistent() + + +

                                                                                                                          + + + + + public + setPersistent(bool $persistent) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $persistent + : bool +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setReadonly() + + +

                                                                                                                          + + + + + public + setReadonly(bool $readonly) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $readonly + : bool +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setReadTimeout() + + +

                                                                                                                          + + + + + public + setReadTimeout(int $seconds) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $seconds + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setServerSideSelectTimeout() + + +

                                                                                                                          + + + + + public + setServerSideSelectTimeout(int $seconds) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $seconds + : int +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setTimeZone() + + +

                                                                                                                          + + + + + public + setTimeZone(string $timeZone) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $timeZone + : string +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          + setTransactionIsolationLevel() + + +

                                                                                                                          + + + + + public + setTransactionIsolationLevel(string $isolationLevel) : void + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          Parameters
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + $isolationLevel + : string +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          
                                                                                                                          +        
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + + + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          + On this page + + +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          +

                                                                                                                          Search results

                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + + +
                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbOptionsInterface.html b/php/phpdoc/classes/sql-MydbOptionsInterface.html new file mode 100644 index 00000000000..666b1b232d2 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbOptionsInterface.html @@ -0,0 +1,1817 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                            +

                                                                                                                            phpDocumentor

                                                                                                                            + + + + + +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            + + +
                                                                                                                            +

                                                                                                                            + MydbOptionsInterface +
                                                                                                                            + in + +
                                                                                                                            +

                                                                                                                            + + + + + + +
                                                                                                                            + Tags + + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + author +
                                                                                                                            +
                                                                                                                            + +

                                                                                                                            Sergei Shilko contact@sshilko.com

                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + license +
                                                                                                                            +
                                                                                                                            + +

                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + see +
                                                                                                                            +
                                                                                                                            + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                            +
                                                                                                                            + + + +

                                                                                                                            + Table of Contents + + +

                                                                                                                            + + + + + + + +

                                                                                                                            + Constants + + +

                                                                                                                            +
                                                                                                                            +
                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_DEFAULT + +  = 'REPEATABLE READ' +
                                                                                                                            + +
                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED + +  = 'READ COMMITTED' +
                                                                                                                            + +
                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED + +  = 'READ UNCOMMITTED' +
                                                                                                                            + +
                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ + +  = 'REPEATABLE READ' +
                                                                                                                            + +
                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE + +  = 'SERIALIZABLE' +
                                                                                                                            + +
                                                                                                                            + + + +

                                                                                                                            + Methods + + +

                                                                                                                            +
                                                                                                                            +
                                                                                                                            + getCharset() + +  : string +
                                                                                                                            + +
                                                                                                                            + getClientErrorLevel() + +  : int +
                                                                                                                            + +
                                                                                                                            + getConnectTimeout() + +  : int +
                                                                                                                            + +
                                                                                                                            + getErrorReporting() + +  : int +
                                                                                                                            + +
                                                                                                                            + getNetworkBufferSize() + +  : int +
                                                                                                                            + +
                                                                                                                            + getNetworkReadBuffer() + +  : int +
                                                                                                                            + +
                                                                                                                            + getNonInteractiveTimeout() + +  : int +
                                                                                                                            + +
                                                                                                                            + getReadTimeout() + +  : int +
                                                                                                                            + +
                                                                                                                            + getServerSideSelectTimeout() + +  : int +
                                                                                                                            + +
                                                                                                                            + getTimeZone() + +  : string +
                                                                                                                            + +
                                                                                                                            + getTransactionIsolationLevel() + +  : string|null +
                                                                                                                            + +
                                                                                                                            + isAutocommit() + +  : bool +
                                                                                                                            + +
                                                                                                                            + isPersistent() + +  : bool +
                                                                                                                            + +
                                                                                                                            + isReadonly() + +  : bool +
                                                                                                                            + +
                                                                                                                            + setAutocommit() + +  : void +
                                                                                                                            + +
                                                                                                                            + setCharset() + +  : void +
                                                                                                                            + +
                                                                                                                            + setClientErrorLevel() + +  : void +
                                                                                                                            + +
                                                                                                                            + setConnectTimeout() + +  : void +
                                                                                                                            + +
                                                                                                                            + setErrorReporting() + +  : void +
                                                                                                                            + +
                                                                                                                            + setNetworkBufferSize() + +  : void +
                                                                                                                            + +
                                                                                                                            + setNetworkReadBuffer() + +  : void +
                                                                                                                            + +
                                                                                                                            + setNonInteractiveTimeout() + +  : void +
                                                                                                                            + +
                                                                                                                            + setPersistent() + +  : void +
                                                                                                                            + +
                                                                                                                            + setReadonly() + +  : void +
                                                                                                                            + +
                                                                                                                            + setReadTimeout() + +  : void +
                                                                                                                            + +
                                                                                                                            + setServerSideSelectTimeout() + +  : void +
                                                                                                                            + +
                                                                                                                            + setTimeZone() + +  : void +
                                                                                                                            + +
                                                                                                                            + setTransactionIsolationLevel() + +  : void +
                                                                                                                            + +
                                                                                                                            + + + + + +
                                                                                                                            +

                                                                                                                            + Constants + + +

                                                                                                                            + +
                                                                                                                            +

                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED + + +

                                                                                                                            + + + + + + public + mixed + TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED + = 'READ COMMITTED' + + + + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED + + +

                                                                                                                            + + + + + + public + mixed + TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED + = 'READ UNCOMMITTED' + + + + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ + + +

                                                                                                                            + + + + + + public + mixed + TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ + = 'REPEATABLE READ' + + + + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE + + +

                                                                                                                            + + + + + + public + mixed + TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE + = 'SERIALIZABLE' + + + + + + + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +

                                                                                                                            + Methods + + +

                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getCharset() + + +

                                                                                                                            + + + + + public + getCharset() : string + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + string +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getClientErrorLevel() + + +

                                                                                                                            + + + + + public + getClientErrorLevel() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getConnectTimeout() + + +

                                                                                                                            + + + + + public + getConnectTimeout() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getErrorReporting() + + +

                                                                                                                            + + + + + public + getErrorReporting() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getNetworkBufferSize() + + +

                                                                                                                            + + + + + public + getNetworkBufferSize() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getNetworkReadBuffer() + + +

                                                                                                                            + + + + + public + getNetworkReadBuffer() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getNonInteractiveTimeout() + + +

                                                                                                                            + + + + + public + getNonInteractiveTimeout() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getReadTimeout() + + +

                                                                                                                            + + + + + public + getReadTimeout() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getServerSideSelectTimeout() + + +

                                                                                                                            + + + + + public + getServerSideSelectTimeout() : int + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + int +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getTimeZone() + + +

                                                                                                                            + + + + + public + getTimeZone() : string + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + string +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + getTransactionIsolationLevel() + + +

                                                                                                                            + + + + + public + getTransactionIsolationLevel() : string|null + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + string|null +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + isAutocommit() + + +

                                                                                                                            + + + + + public + isAutocommit() : bool + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + bool +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + isPersistent() + + +

                                                                                                                            + + + + + public + isPersistent() : bool + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + bool +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + isReadonly() + + +

                                                                                                                            + + + + + public + isReadonly() : bool + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            Return values
                                                                                                                            + bool +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setAutocommit() + + +

                                                                                                                            + + + + + public + setAutocommit(bool $autocommit) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $autocommit + : bool +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setCharset() + + +

                                                                                                                            + + + + + public + setCharset(string $charset) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $charset + : string +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setClientErrorLevel() + + +

                                                                                                                            + + + + + public + setClientErrorLevel(int $mysqliReport) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $mysqliReport + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setConnectTimeout() + + +

                                                                                                                            + + + + + public + setConnectTimeout(int $seconds) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $seconds + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setErrorReporting() + + +

                                                                                                                            + + + + + public + setErrorReporting(int $errorReporting) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $errorReporting + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setNetworkBufferSize() + + +

                                                                                                                            + + + + + public + setNetworkBufferSize(int $bytes) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $bytes + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setNetworkReadBuffer() + + +

                                                                                                                            + + + + + public + setNetworkReadBuffer(int $bytes) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $bytes + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setNonInteractiveTimeout() + + +

                                                                                                                            + + + + + public + setNonInteractiveTimeout(int $nonInteractiveTimeout) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $nonInteractiveTimeout + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setPersistent() + + +

                                                                                                                            + + + + + public + setPersistent(bool $persistent) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $persistent + : bool +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setReadonly() + + +

                                                                                                                            + + + + + public + setReadonly(bool $readonly) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $readonly + : bool +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setReadTimeout() + + +

                                                                                                                            + + + + + public + setReadTimeout(int $seconds) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $seconds + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setServerSideSelectTimeout() + + +

                                                                                                                            + + + + + public + setServerSideSelectTimeout(int $seconds) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $seconds + : int +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setTimeZone() + + +

                                                                                                                            + + + + + public + setTimeZone(string $timeZone) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $timeZone + : string +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            + setTransactionIsolationLevel() + + +

                                                                                                                            + + + + + public + setTransactionIsolationLevel(string $isolationLevel) : void + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            Parameters
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + $isolationLevel + : string +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            
                                                                                                                            +        
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + + + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            + On this page + + +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Search results

                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbQueryBuilder.html b/php/phpdoc/classes/sql-MydbQueryBuilder.html new file mode 100644 index 00000000000..3ce5f74b0cb --- /dev/null +++ b/php/phpdoc/classes/sql-MydbQueryBuilder.html @@ -0,0 +1,1276 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                              +

                                                                                                                              phpDocumentor

                                                                                                                              + + + + + +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + + + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              +

                                                                                                                              + MydbQueryBuilder + + +
                                                                                                                              + in package + +
                                                                                                                              + + + implements + MydbQueryBuilderInterface + +

                                                                                                                              + +
                                                                                                                              + + +
                                                                                                                              + + + + + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + author +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              Sergei Shilko contact@sshilko.com

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + license +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + see +
                                                                                                                              +
                                                                                                                              + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                              +
                                                                                                                              + + + +

                                                                                                                              + Table of Contents + + +

                                                                                                                              + + + +

                                                                                                                              + Interfaces + + +

                                                                                                                              +
                                                                                                                              +
                                                                                                                              MydbQueryBuilderInterface
                                                                                                                              + + + + + + +

                                                                                                                              + Properties + + +

                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $mysqli + +  : MydbMysqliEscapeStringInterface +
                                                                                                                              + +
                                                                                                                              + +

                                                                                                                              + Methods + + +

                                                                                                                              +
                                                                                                                              +
                                                                                                                              + __construct() + +  : mixed +
                                                                                                                              + +
                                                                                                                              + buildDeleteWhere() + +  : string|null +
                                                                                                                              + +
                                                                                                                              + buildInsertMany() + +  : string +
                                                                                                                              + +
                                                                                                                              + buildUpdateWhere() + +  : string|null +
                                                                                                                              + +
                                                                                                                              + buildUpdateWhereMany() + +  : string +
                                                                                                                              + +
                                                                                                                              + buildWhere() + +  : string +
                                                                                                                              + +
                                                                                                                              + escape() + +  : string +
                                                                                                                              + +
                                                                                                                              + insertOne() + +  : string +
                                                                                                                              + +
                                                                                                                              + showColumnsLike() + +  : string +
                                                                                                                              + +
                                                                                                                              + showKeys() + +  : string +
                                                                                                                              + +
                                                                                                                              + + + + + + + +
                                                                                                                              +

                                                                                                                              + Properties + + +

                                                                                                                              + +
                                                                                                                              + +
                                                                                                                              +

                                                                                                                              + Methods + + +

                                                                                                                              + +
                                                                                                                              +

                                                                                                                              + buildDeleteWhere() + + +

                                                                                                                              + + + + + public + buildDeleteWhere(string $table[, array<string|int, mixed> $fields = [] ][, array<string|int, mixed> $negativeFields = [] ]) : string|null + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $fields + : array<string|int, mixed> + = []
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $negativeFields + : array<string|int, mixed> + = []
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string|null +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + buildInsertMany() + + +

                                                                                                                              + + + + + public + buildInsertMany(array<string|int, mixed> $data, array<string|int, string> $cols, string $table, bool $ignore, string $onDuplicate) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $data + : array<string|int, mixed> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $cols + : array<string|int, string> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $ignore + : bool +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $onDuplicate + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + see +
                                                                                                                              +
                                                                                                                              + https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + buildUpdateWhere() + + +

                                                                                                                              + + + + + public + buildUpdateWhere(array<string, float|int|string|MydbExpressionInterface|null> $update, array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : string|null + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $update + : array<string, float|int|string|MydbExpressionInterface|null> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $whereFields + : array<string|int, mixed> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $whereNotFields + : array<string|int, mixed> + = []
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string|null +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + buildUpdateWhereMany() + + +

                                                                                                                              + + + + + public + buildUpdateWhereMany(array<string|int, mixed> $columnSetWhere, array<string|int, mixed> $where, string $table) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $columnSetWhere + : array<string|int, mixed> +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              ['col1' => [ ['current1', 'new1'], ['current2', 'new2']]

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $where + : array<string|int, mixed> +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              ['col2' => 'value2', 'col3' => ['v3', 'v4']]

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              'mytable'

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + phpcs:disable +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + buildWhere() + + +

                                                                                                                              + + + + + public + buildWhere(array<string|int, mixed> $fields[, array<string|int, mixed> $negativeFields = [] ][, array<string|int, mixed> $likeFields = [] ]) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $fields + : array<string|int, mixed> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $negativeFields + : array<string|int, mixed> + = []
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $likeFields + : array<string|int, mixed> + = []
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + todo +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              will this need real db connection to escape()? add test for all possible cases

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + phpcs:disable +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + escape() + + +

                                                                                                                              + + + + + public + escape(float|int|string|MydbExpressionInterface|null $unescaped[, string $quote = "'" ]) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $unescaped + : float|int|string|MydbExpressionInterface|null +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $quote + : string + = "'"
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + SuppressWarnings +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              (PHPMD.NPathComplexity)

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + todo +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              reduce NPathComplexity

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + phpcs:disable +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + insertOne() + + +

                                                                                                                              + + + + + public + insertOne(array<string, float|int|MydbExpressionInterface|string|null> $data, string $table, string $type) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $data + : array<string, float|int|MydbExpressionInterface|string|null> +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $type + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + psalm-return +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              string

                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + showColumnsLike() + + +

                                                                                                                              + + + + + public + showColumnsLike(string $table, string $column) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + $column + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              + showKeys() + + +

                                                                                                                              + + + + + public + showKeys(string $table) : string + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              Parameters
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + $table + : string +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + +
                                                                                                                              + Tags + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + throws +
                                                                                                                              +
                                                                                                                              + QueryBuilderException + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              Return values
                                                                                                                              + string +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              
                                                                                                                              +        
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + + + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              + On this page + + +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              +

                                                                                                                              Search results

                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + + +
                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbQueryBuilderInterface.html b/php/phpdoc/classes/sql-MydbQueryBuilderInterface.html new file mode 100644 index 00000000000..527d6e75d29 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbQueryBuilderInterface.html @@ -0,0 +1,1091 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                +

                                                                                                                                phpDocumentor

                                                                                                                                + + + + + +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + + +
                                                                                                                                +
                                                                                                                                + + +
                                                                                                                                +

                                                                                                                                + MydbQueryBuilderInterface +
                                                                                                                                + in + +
                                                                                                                                +

                                                                                                                                + + + + + + +
                                                                                                                                + Tags + + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + author +
                                                                                                                                +
                                                                                                                                + +

                                                                                                                                Sergei Shilko contact@sshilko.com

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + license +
                                                                                                                                +
                                                                                                                                + +

                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + see +
                                                                                                                                +
                                                                                                                                + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                                +
                                                                                                                                + + + +

                                                                                                                                + Table of Contents + + +

                                                                                                                                + + + + + + + +

                                                                                                                                + Constants + + +

                                                                                                                                +
                                                                                                                                +
                                                                                                                                + SQL_INSERT + +  = 'INSERT' +
                                                                                                                                + +
                                                                                                                                + SQL_REPLACE + +  = 'REPLACE' +
                                                                                                                                + +
                                                                                                                                + + + +

                                                                                                                                + Methods + + +

                                                                                                                                +
                                                                                                                                +
                                                                                                                                + buildDeleteWhere() + +  : string|null +
                                                                                                                                + +
                                                                                                                                + buildInsertMany() + +  : string +
                                                                                                                                + +
                                                                                                                                + buildUpdateWhere() + +  : string|null +
                                                                                                                                + +
                                                                                                                                + buildUpdateWhereMany() + +  : string +
                                                                                                                                + +
                                                                                                                                + buildWhere() + +  : string +
                                                                                                                                + +
                                                                                                                                + escape() + +  : string +
                                                                                                                                + +
                                                                                                                                + insertOne() + +  : string +
                                                                                                                                + +
                                                                                                                                + showColumnsLike() + +  : string +
                                                                                                                                + +
                                                                                                                                + showKeys() + +  : string +
                                                                                                                                + +
                                                                                                                                + + + + + +
                                                                                                                                +

                                                                                                                                + Constants + + +

                                                                                                                                + + +
                                                                                                                                + +
                                                                                                                                +

                                                                                                                                + Methods + + +

                                                                                                                                +
                                                                                                                                +

                                                                                                                                + buildDeleteWhere() + + +

                                                                                                                                + + + + + public + buildDeleteWhere(string $table[, array<string|int, mixed> $fields = [] ][, array<string|int, mixed> $negativeFields = [] ]) : string|null + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $fields + : array<string|int, mixed> + = []
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $negativeFields + : array<string|int, mixed> + = []
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string|null +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + buildInsertMany() + + +

                                                                                                                                + + + + + public + buildInsertMany(array<string|int, mixed> $data, array<string|int, string> $cols, string $table, bool $ignore, string $onDuplicate) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $data + : array<string|int, mixed> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $cols + : array<string|int, string> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $ignore + : bool +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $onDuplicate + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + buildUpdateWhere() + + +

                                                                                                                                + + + + + public + buildUpdateWhere(array<string, float|int|string|MydbExpressionInterface|null> $update, array<string|int, mixed> $whereFields, string $table[, array<string|int, mixed> $whereNotFields = [] ]) : string|null + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $update + : array<string, float|int|string|MydbExpressionInterface|null> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $whereFields + : array<string|int, mixed> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $whereNotFields + : array<string|int, mixed> + = []
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + +
                                                                                                                                + Tags + + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + throws +
                                                                                                                                +
                                                                                                                                + QueryBuilderException + + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string|null +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + buildUpdateWhereMany() + + +

                                                                                                                                + + + + + public + buildUpdateWhereMany(array<string|int, mixed> $columnSetWhere, array<string|int, mixed> $where, string $table) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $columnSetWhere + : array<string|int, mixed> +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                ['col1' => [ ['current1', 'new1'], ['current2', 'new2']]

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $where + : array<string|int, mixed> +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                ['col2' => 'value2', 'col3' => ['v3', 'v4']]

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                'mytable'

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + buildWhere() + + +

                                                                                                                                + + + + + public + buildWhere(array<string|int, mixed> $fields[, array<string|int, mixed> $negativeFields = [] ][, array<string|int, mixed> $likeFields = [] ]) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $fields + : array<string|int, mixed> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $negativeFields + : array<string|int, mixed> + = []
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $likeFields + : array<string|int, mixed> + = []
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + +
                                                                                                                                + Tags + + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + throws +
                                                                                                                                +
                                                                                                                                + QueryBuilderException + + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                + +
                                                                                                                                +

                                                                                                                                + insertOne() + + +

                                                                                                                                + + + + + public + insertOne(array<string, float|int|MydbExpressionInterface|string|null> $data, string $table, string $type) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $data + : array<string, float|int|MydbExpressionInterface|string|null> +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $type + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + +
                                                                                                                                + Tags + + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + psalm-return +
                                                                                                                                +
                                                                                                                                + +

                                                                                                                                string

                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + showColumnsLike() + + +

                                                                                                                                + + + + + public + showColumnsLike(string $table, string $column) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + $column + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                + showKeys() + + +

                                                                                                                                + + + + + public + showKeys(string $table) : string + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                Parameters
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + $table + : string +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                Return values
                                                                                                                                + string +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                
                                                                                                                                +        
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + + + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                + On this page + + +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                +

                                                                                                                                Search results

                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbRegistry.html b/php/phpdoc/classes/sql-MydbRegistry.html new file mode 100644 index 00000000000..119d68f9988 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbRegistry.html @@ -0,0 +1,1299 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                  +

                                                                                                                                  phpDocumentor

                                                                                                                                  + + + + + +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + + + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +

                                                                                                                                  + MydbRegistry + + +
                                                                                                                                  + in package + +
                                                                                                                                  + + + implements + ArrayAccess, Countable, Traversable, Iterator, Serializable + +

                                                                                                                                  + +
                                                                                                                                  + + +
                                                                                                                                  + + + +

                                                                                                                                  Singleton or registry helper to manage multiple Mydb instances

                                                                                                                                  + + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + author +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  Sergei Shilko contact@sshilko.com

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + license +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + see +
                                                                                                                                  +
                                                                                                                                  + https://github.com/sshilko/php-sql-mydb + + +
                                                                                                                                  +
                                                                                                                                  + psalm-suppress +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  MissingTemplateParam

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + + +

                                                                                                                                  + Table of Contents + + +

                                                                                                                                  + + + +

                                                                                                                                  + Interfaces + + +

                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  ArrayAccess
                                                                                                                                  Countable
                                                                                                                                  Traversable
                                                                                                                                  Iterator
                                                                                                                                  Serializable
                                                                                                                                  + + + + + + +

                                                                                                                                  + Properties + + +

                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $instance + +  : array<string, MydbInterface> +
                                                                                                                                  + +
                                                                                                                                  + +

                                                                                                                                  + Methods + + +

                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + __clone() + +  : mixed +
                                                                                                                                  + +
                                                                                                                                  + __serialize() + +  : array<string|int, mixed> +
                                                                                                                                  + +
                                                                                                                                  + __unserialize() + +  : void +
                                                                                                                                  + +
                                                                                                                                  + count() + +  : int +
                                                                                                                                  + +
                                                                                                                                  + current() + +  : MydbInterface|null +
                                                                                                                                  +
                                                                                                                                  Return the current element
                                                                                                                                  + +
                                                                                                                                  + key() + +  : string|null +
                                                                                                                                  +
                                                                                                                                  Return the key of the current element
                                                                                                                                  + +
                                                                                                                                  + next() + +  : void +
                                                                                                                                  +
                                                                                                                                  Move forward to next element
                                                                                                                                  + +
                                                                                                                                  + offsetExists() + +  : bool +
                                                                                                                                  +
                                                                                                                                  Whether an offset exists
                                                                                                                                  + +
                                                                                                                                  + offsetGet() + +  : MydbInterface +
                                                                                                                                  +
                                                                                                                                  Offset to retrieve
                                                                                                                                  + +
                                                                                                                                  + offsetSet() + +  : void +
                                                                                                                                  +
                                                                                                                                  Offset to set
                                                                                                                                  + +
                                                                                                                                  + offsetUnset() + +  : void +
                                                                                                                                  +
                                                                                                                                  Offset to unset
                                                                                                                                  + +
                                                                                                                                  + rewind() + +  : void +
                                                                                                                                  +
                                                                                                                                  Rewind the Iterator to the first element
                                                                                                                                  + +
                                                                                                                                  + serialize() + +  : string|null +
                                                                                                                                  + +
                                                                                                                                  + unserialize() + +  : void +
                                                                                                                                  + +
                                                                                                                                  + valid() + +  : bool +
                                                                                                                                  +
                                                                                                                                  Checks if current position is valid
                                                                                                                                  + +
                                                                                                                                  + + + + + + + +
                                                                                                                                  +

                                                                                                                                  + Properties + + +

                                                                                                                                  + +
                                                                                                                                  + +
                                                                                                                                  +

                                                                                                                                  + Methods + + +

                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + __clone() + + +

                                                                                                                                  + + + + + public + __clone() : mixed + +
                                                                                                                                  +
                                                                                                                                  + + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + __serialize() + + +

                                                                                                                                  + + + + + public + __serialize() : array<string|int, mixed> + +
                                                                                                                                  +
                                                                                                                                  + + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + array<string|int, mixed> +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + __unserialize() + + +

                                                                                                                                  + + + + + public + __unserialize(array<string|int, mixed> $data) : void + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $data + : array<string|int, mixed> +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + count() + + +

                                                                                                                                  + + + + + public + count() : int + +
                                                                                                                                  +
                                                                                                                                  + + + + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + int +
                                                                                                                                  + +
                                                                                                                                  + +
                                                                                                                                  +

                                                                                                                                  + key() + + +

                                                                                                                                  + + +

                                                                                                                                  Return the key of the current element

                                                                                                                                  + + + public + key() : string|null + +
                                                                                                                                  +
                                                                                                                                  + + + + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + string|null +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + next() + + +

                                                                                                                                  + + +

                                                                                                                                  Move forward to next element

                                                                                                                                  + + + public + next() : void + +
                                                                                                                                  +
                                                                                                                                  + + + + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + offsetExists() + + +

                                                                                                                                  + + +

                                                                                                                                  Whether an offset exists

                                                                                                                                  + + + public + offsetExists(string $offset) : bool + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $offset + : string +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + phpcs:disable +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + bool + — +

                                                                                                                                  true on success or false on failure.

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + offsetGet() + + +

                                                                                                                                  + + +

                                                                                                                                  Offset to retrieve

                                                                                                                                  + + + public + offsetGet(string $offset) : MydbInterface + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $offset + : string +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + phpcs:disable +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + MydbInterface +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + offsetSet() + + +

                                                                                                                                  + + +

                                                                                                                                  Offset to set

                                                                                                                                  + + + public + offsetSet(string $offset, MydbInterface $value) : void + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $offset + : string +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + $value + : MydbInterface +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + phpcs:disable +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + offsetUnset() + + +

                                                                                                                                  + + +

                                                                                                                                  Offset to unset

                                                                                                                                  + + + public + offsetUnset(string $offset) : void + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $offset + : string +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + phpcs:disable +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + rewind() + + +

                                                                                                                                  + + +

                                                                                                                                  Rewind the Iterator to the first element

                                                                                                                                  + + + public + rewind() : void + +
                                                                                                                                  +
                                                                                                                                  + + + + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + serialize() + + +

                                                                                                                                  + + + + + public + serialize() : string|null + +
                                                                                                                                  +
                                                                                                                                  + + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + string|null +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + unserialize() + + +

                                                                                                                                  + + + + + public + unserialize(mixed $data) : void + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  Parameters
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + $data + : mixed +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  + Tags + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + throws +
                                                                                                                                  +
                                                                                                                                  + RegistryException + + +
                                                                                                                                  +
                                                                                                                                  + phpcs:disable +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  + valid() + + +

                                                                                                                                  + + +

                                                                                                                                  Checks if current position is valid

                                                                                                                                  + + + public + valid() : bool + +
                                                                                                                                  +
                                                                                                                                  + + + + +
                                                                                                                                  +
                                                                                                                                  Return values
                                                                                                                                  + bool + — +

                                                                                                                                  The return value will be boolean and then evaluated. +Returns true on success or false on failure.

                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  
                                                                                                                                  +        
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + + + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  + On this page + + +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  Search results

                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + + +
                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbRepository.html b/php/phpdoc/classes/sql-MydbRepository.html new file mode 100644 index 00000000000..77f5a441043 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbRepository.html @@ -0,0 +1,530 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                    +

                                                                                                                                    phpDocumentor

                                                                                                                                    + + + + + +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + + + + +
                                                                                                                                    +
                                                                                                                                    + + +
                                                                                                                                    +

                                                                                                                                    + MydbRepository + + +
                                                                                                                                    + in package + +
                                                                                                                                    + + + implements + MydbRepositoryInterface + +

                                                                                                                                    + +
                                                                                                                                    + + +
                                                                                                                                    AbstractYes
                                                                                                                                    + +
                                                                                                                                    + + + + + + + + + +

                                                                                                                                    + Table of Contents + + +

                                                                                                                                    + + + +

                                                                                                                                    + Interfaces + + +

                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    MydbRepositoryInterface
                                                                                                                                    + + + + + + +

                                                                                                                                    + Properties + + +

                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + $registry + +  : MydbRegistry +
                                                                                                                                    + +
                                                                                                                                    + +

                                                                                                                                    + Methods + + +

                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + __construct() + +  : mixed +
                                                                                                                                    + +
                                                                                                                                    + getDatabase() + +  : MydbInterface +
                                                                                                                                    + +
                                                                                                                                    + getDatabaseIdentifier() + +  : string +
                                                                                                                                    + +
                                                                                                                                    + + + + + + + +
                                                                                                                                    +

                                                                                                                                    + Properties + + +

                                                                                                                                    + +
                                                                                                                                    + +
                                                                                                                                    +

                                                                                                                                    + Methods + + +

                                                                                                                                    + + +
                                                                                                                                    +

                                                                                                                                    + getDatabaseIdentifier() + + +

                                                                                                                                    + + + + + public + abstract getDatabaseIdentifier() : string + +
                                                                                                                                    +
                                                                                                                                    + + + + +
                                                                                                                                    +
                                                                                                                                    Return values
                                                                                                                                    + string +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    
                                                                                                                                    +        
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + + + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    + On this page + + +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    Search results

                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      + + +
                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/classes/sql-MydbRepositoryInterface.html b/php/phpdoc/classes/sql-MydbRepositoryInterface.html new file mode 100644 index 00000000000..5494e1be3a5 --- /dev/null +++ b/php/phpdoc/classes/sql-MydbRepositoryInterface.html @@ -0,0 +1,357 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                      +

                                                                                                                                      phpDocumentor

                                                                                                                                      + + + + + +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      + + + + +
                                                                                                                                      +
                                                                                                                                      + + +
                                                                                                                                      +

                                                                                                                                      + MydbRepositoryInterface +
                                                                                                                                      + in + +
                                                                                                                                      +

                                                                                                                                      + + + + + + + + + +

                                                                                                                                      + Table of Contents + + +

                                                                                                                                      + + + + + + + + + + +

                                                                                                                                      + Methods + + +

                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      + getDatabase() + +  : MydbInterface +
                                                                                                                                      + +
                                                                                                                                      + + + + + + +
                                                                                                                                      +

                                                                                                                                      + Methods + + +

                                                                                                                                      + +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      
                                                                                                                                      +        
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      + + + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      + +
                                                                                                                                      + On this page + + +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      Search results

                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        + + +
                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/css/base.css b/php/phpdoc/css/base.css new file mode 100644 index 00000000000..3482dfbb22d --- /dev/null +++ b/php/phpdoc/css/base.css @@ -0,0 +1,1231 @@ + + +:root { + /* Typography */ + --font-primary: 'Open Sans', Helvetica, Arial, sans-serif; + --font-secondary: 'Open Sans', Helvetica, Arial, sans-serif; + --font-monospace: 'Source Code Pro', monospace; + --line-height--primary: 1.6; + --letter-spacing--primary: .05rem; + --text-base-size: 1em; + --text-scale-ratio: 1.2; + + --text-xxs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio) / var(--text-scale-ratio)); + --text-xs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio)); + --text-sm: calc(var(--text-base-size) / var(--text-scale-ratio)); + --text-md: var(--text-base-size); + --text-lg: calc(var(--text-base-size) * var(--text-scale-ratio)); + --text-xl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + + --color-hue-red: 4; + --color-hue-pink: 340; + --color-hue-purple: 291; + --color-hue-deep-purple: 262; + --color-hue-indigo: 231; + --color-hue-blue: 207; + --color-hue-light-blue: 199; + --color-hue-cyan: 187; + --color-hue-teal: 174; + --color-hue-green: 122; + --color-hue-phpdocumentor-green: 96; + --color-hue-light-green: 88; + --color-hue-lime: 66; + --color-hue-yellow: 54; + --color-hue-amber: 45; + --color-hue-orange: 36; + --color-hue-deep-orange: 14; + --color-hue-brown: 16; + + /* Colors */ + --primary-color-hue: var(--color-hue-phpdocumentor-green, --color-hue-phpdocumentor-green); + --primary-color-saturation: 57%; + --primary-color: hsl(var(--primary-color-hue), var(--primary-color-saturation), 60%); + --primary-color-darken: hsl(var(--primary-color-hue), var(--primary-color-saturation), 40%); + --primary-color-darker: hsl(var(--primary-color-hue), var(--primary-color-saturation), 25%); + --primary-color-darkest: hsl(var(--primary-color-hue), var(--primary-color-saturation), 10%); + --primary-color-lighten: hsl(var(--primary-color-hue), calc(var(--primary-color-saturation) - 20%), 85%); + --primary-color-lighter: hsl(var(--primary-color-hue), calc(var(--primary-color-saturation) - 45%), 97.5%); + --dark-gray: #d1d1d1; + --light-gray: #f0f0f0; + + --text-color: var(--primary-color-darkest); + + --header-height: var(--spacing-xxxxl); + --header-bg-color: var(--primary-color); + --code-background-color: var(--primary-color-lighter); + --code-border-color: --primary-color-lighten; + --button-border-color: var(--primary-color-darken); + --button-color: transparent; + --button-color-primary: var(--primary-color); + --button-text-color: #555; + --button-text-color-primary: white; + --popover-background-color: rgba(255, 255, 255, 0.75); + --link-color-primary: var(--primary-color-darker); + --link-hover-color-primary: var(--primary-color-darkest); + --form-field-border-color: var(--dark-gray); + --form-field-color: #fff; + --admonition-success-color: var(--primary-color); + --admonition-border-color: silver; + --table-separator-color: var(--primary-color-lighten); + --title-text-color: var(--primary-color); + + --sidebar-border-color: var(--primary-color-lighten); + + /* Grid */ + --container-width: 1400px; + + /* Spacing */ + --spacing-base-size: 1rem; + --spacing-scale-ratio: 1.5; + + --spacing-xxxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-xxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-xs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-sm: calc(var(--spacing-base-size) / var(--spacing-scale-ratio)); + --spacing-md: var(--spacing-base-size); + --spacing-lg: calc(var(--spacing-base-size) * var(--spacing-scale-ratio)); + --spacing-xl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + + --border-radius-base-size: 3px; +} + +/* Base Styles +-------------------------------------------------- */ +body { + color: var(--text-color); + font-family: var(--font-primary); + font-size: var(--text-md); + letter-spacing: var(--letter-spacing--primary); + line-height: var(--line-height--primary); + width: 100%; +} + +.phpdocumentor h1, +.phpdocumentor h2, +.phpdocumentor h3, +.phpdocumentor h4, +.phpdocumentor h5, +.phpdocumentor h6 { + margin-bottom: var(--spacing-lg); + margin-top: var(--spacing-lg); + font-weight: 600; +} + +.phpdocumentor h1 { + font-size: var(--text-xxxxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.2; + margin-top: 0; +} + +.phpdocumentor h2 { + font-size: var(--text-xxxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.25; +} + +.phpdocumentor h3 { + font-size: var(--text-xxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.3; +} + +.phpdocumentor h4 { + font-size: var(--text-xl); + letter-spacing: calc(var(--letter-spacing--primary) / 2); + line-height: 1.35; + margin-bottom: var(--spacing-md); +} + +.phpdocumentor h5 { + font-size: var(--text-lg); + letter-spacing: calc(var(--letter-spacing--primary) / 4); + line-height: 1.5; + margin-bottom: var(--spacing-md); + margin-top: var(--spacing-md); +} + +.phpdocumentor h6 { + font-size: var(--text-md); + letter-spacing: 0; + line-height: var(--line-height--primary); + margin-bottom: var(--spacing-md); + margin-top: var(--spacing-md); +} +.phpdocumentor h1 .headerlink, +.phpdocumentor h2 .headerlink, +.phpdocumentor h3 .headerlink, +.phpdocumentor h4 .headerlink, +.phpdocumentor h5 .headerlink, +.phpdocumentor h6 .headerlink +{ + display: none; +} + +@media (min-width: 550px) { + .phpdocumentor h1 .headerlink, + .phpdocumentor h2 .headerlink, + .phpdocumentor h3 .headerlink, + .phpdocumentor h4 .headerlink, + .phpdocumentor h5 .headerlink, + .phpdocumentor h6 .headerlink { + display: inline; + transition: all .3s ease-in-out; + opacity: 0; + text-decoration: none; + color: silver; + font-size: 80%; + } + + .phpdocumentor h1:hover .headerlink, + .phpdocumentor h2:hover .headerlink, + .phpdocumentor h3:hover .headerlink, + .phpdocumentor h4:hover .headerlink, + .phpdocumentor h5:hover .headerlink, + .phpdocumentor h6:hover .headerlink { + opacity: 1; + } +} +.phpdocumentor p { + margin-top: 0; + margin-bottom: var(--spacing-md); +} +.phpdocumentor figure { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor figcaption { + text-align: center; + font-style: italic; + font-size: 80%; +} + +.phpdocumentor-uml-diagram svg { + max-width: 100%; + height: auto !important; +} +.phpdocumentor-line { + border-top: 1px solid #E1E1E1; + border-width: 0; + margin-bottom: var(--spacing-xxl); + margin-top: var(--spacing-xxl); +} +.phpdocumentor-section { + box-sizing: border-box; + margin: 0 auto; + max-width: var(--container-width); + padding: 0 var(--spacing-sm); + position: relative; + width: 100%; +} + +@media (min-width: 550px) { + .phpdocumentor-section { + padding: 0 var(--spacing-lg); + } +} + +@media (min-width: 1200px) { + .phpdocumentor-section { + padding: 0; + width: 95%; + } +} +.phpdocumentor-column { + box-sizing: border-box; + float: left; + width: 100%; +} + +@media (min-width: 550px) { + .phpdocumentor-column { + margin-left: 4%; + } + + .phpdocumentor-column:first-child { + margin-left: 0; + } + + .-one.phpdocumentor-column { + width: 4.66666666667%; + } + + .-two.phpdocumentor-column { + width: 13.3333333333%; + } + + .-three.phpdocumentor-column { + width: 22%; + } + + .-four.phpdocumentor-column { + width: 30.6666666667%; + } + + .-five.phpdocumentor-column { + width: 39.3333333333%; + } + + .-six.phpdocumentor-column { + width: 48%; + } + + .-seven.phpdocumentor-column { + width: 56.6666666667%; + } + + .-eight.phpdocumentor-column { + width: 65.3333333333%; + } + + .-nine.phpdocumentor-column { + width: 74.0%; + } + + .-ten.phpdocumentor-column { + width: 82.6666666667%; + } + + .-eleven.phpdocumentor-column { + width: 91.3333333333%; + } + + .-twelve.phpdocumentor-column { + margin-left: 0; + width: 100%; + } + + .-one-third.phpdocumentor-column { + width: 30.6666666667%; + } + + .-two-thirds.phpdocumentor-column { + width: 65.3333333333%; + } + + .-one-half.phpdocumentor-column { + width: 48%; + } + + /* Offsets */ + .-offset-by-one.phpdocumentor-column { + margin-left: 8.66666666667%; + } + + .-offset-by-two.phpdocumentor-column { + margin-left: 17.3333333333%; + } + + .-offset-by-three.phpdocumentor-column { + margin-left: 26%; + } + + .-offset-by-four.phpdocumentor-column { + margin-left: 34.6666666667%; + } + + .-offset-by-five.phpdocumentor-column { + margin-left: 43.3333333333%; + } + + .-offset-by-six.phpdocumentor-column { + margin-left: 52%; + } + + .-offset-by-seven.phpdocumentor-column { + margin-left: 60.6666666667%; + } + + .-offset-by-eight.phpdocumentor-column { + margin-left: 69.3333333333%; + } + + .-offset-by-nine.phpdocumentor-column { + margin-left: 78.0%; + } + + .-offset-by-ten.phpdocumentor-column { + margin-left: 86.6666666667%; + } + + .-offset-by-eleven.phpdocumentor-column { + margin-left: 95.3333333333%; + } + + .-offset-by-one-third.phpdocumentor-column { + margin-left: 34.6666666667%; + } + + .-offset-by-two-thirds.phpdocumentor-column { + margin-left: 69.3333333333%; + } + + .-offset-by-one-half.phpdocumentor-column { + margin-left: 52%; + } +} +.phpdocumentor a { + color: var(--link-color-primary); +} + +.phpdocumentor a:hover { + color: var(--link-hover-color-primary); +} +.phpdocumentor-button { + background-color: var(--button-color); + border: 1px solid var(--button-border-color); + border-radius: var(--border-radius-base-size); + box-sizing: border-box; + color: var(--button-text-color); + cursor: pointer; + display: inline-block; + font-size: var(--text-sm); + font-weight: 600; + height: 38px; + letter-spacing: .1rem; + line-height: 38px; + padding: 0 var(--spacing-xxl); + text-align: center; + text-decoration: none; + text-transform: uppercase; + white-space: nowrap; + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-button .-wide { + width: 100%; +} + +.phpdocumentor-button:hover, +.phpdocumentor-button:focus { + border-color: #888; + color: #333; + outline: 0; +} + +.phpdocumentor-button.-primary { + background-color: var(--button-color-primary); + border-color: var(--button-color-primary); + color: var(--button-text-color-primary); +} + +.phpdocumentor-button.-primary:hover, +.phpdocumentor-button.-primary:focus { + background-color: var(--link-color-primary); + border-color: var(--link-color-primary); + color: var(--button-text-color-primary); +} +.phpdocumentor form { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-field { + background-color: var(--form-field-color); + border: 1px solid var(--form-field-border-color); + border-radius: var(--border-radius-base-size); + box-shadow: none; + box-sizing: border-box; + height: 38px; + padding: var(--spacing-xxxs) var(--spacing-xxs); /* The 6px vertically centers text on FF, ignored by Webkit */ + margin-bottom: var(--spacing-md); +} + +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; +} + +.phpdocumentor-textarea { + min-height: 65px; + padding-bottom: var(--spacing-xxxs); + padding-top: var(--spacing-xxxs); +} + +.phpdocumentor-field:focus { + border: 1px solid var(--button-color-primary); + outline: 0; +} + +label.phpdocumentor-label { + display: block; + margin-bottom: var(--spacing-xs); +} + +.phpdocumentor-fieldset { + border-width: 0; + padding: 0; +} + +input[type="checkbox"].phpdocumentor-field, +input[type="radio"].phpdocumentor-field { + display: inline; +} +.phpdocumentor-column ul, +div.phpdocumentor-list > ul, +ul.phpdocumentor-list { + list-style: circle; +} + +.phpdocumentor-column ol, +div.phpdocumentor-list > ol, +ol.phpdocumentor-list { + list-style: decimal; +} + + +.phpdocumentor-column ul, +div.phpdocumentor-list > ul, +ol.phpdocumentor-list, +ul.phpdocumentor-list { + margin-top: 0; + padding-left: var(--spacing-md); + margin-bottom: var(--spacing-sm); +} + +.phpdocumentor-column ul.-clean, +div.phpdocumentor-list > ul.-clean, +ul.phpdocumentor-list.-clean { + list-style: none; + padding-left: 0; +} + +dl { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-column ul ul, +div.phpdocumentor-list > ul ul, +ul.phpdocumentor-list ul.phpdocumentor-list, +ul.phpdocumentor-list ol.phpdocumentor-list, +ol.phpdocumentor-list ol.phpdocumentor-list, +ol.phpdocumentor-list ul.phpdocumentor-list { + font-size: var(--text-sm); + margin: 0 0 0 calc(var(--spacing-xs) * 2); +} + +.phpdocumentor-column ul li, +.phpdocumentor-list li { + padding-bottom: var(--spacing-xs); +} + +.phpdocumentor dl dt { + margin-bottom: var(--spacing-xs); +} + +.phpdocumentor dl dd { + margin-bottom: var(--spacing-md); +} +.phpdocumentor pre { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-code { + font-family: var(--font-monospace); + background: var(--code-background-color); + border: 1px solid var(--code-border-color); + border-radius: var(--border-radius-base-size); + font-size: var(--text-sm); + padding: var(--spacing-sm) var(--spacing-md); + width: 100%; + box-sizing: border-box; +} + +.phpdocumentor-code.-dark { + background: var(--primary-color-darkest); + color: var(--light-gray); + box-shadow: 0 2px 3px var(--dark-gray); +} + +pre > .phpdocumentor-code { + display: block; + white-space: pre; +} +.phpdocumentor blockquote { + border-left: 4px solid var(--primary-color-darken); + margin: var(--spacing-md) 0; + padding: var(--spacing-xs) var(--spacing-sm); + color: var(--primary-color-darker); + font-style: italic; +} + +.phpdocumentor blockquote p:last-of-type { + margin-bottom: 0; +} +.phpdocumentor table { + margin-bottom: var(--spacing-md); +} + +th.phpdocumentor-heading, +td.phpdocumentor-cell { + border-bottom: 1px solid var(--table-separator-color); + padding: var(--spacing-sm) var(--spacing-md); + text-align: left; +} + +th.phpdocumentor-heading:first-child, +td.phpdocumentor-cell:first-child { + padding-left: 0; +} + +th.phpdocumentor-heading:last-child, +td.phpdocumentor-cell:last-child { + padding-right: 0; +} +.phpdocumentor-label-line { + display: flex; + flex-direction: row; + gap: 1rem +} + +.phpdocumentor-label { + background: #f6f6f6; + border-radius: .25rem; + font-size: 80%; + display: inline-block; + overflow: hidden +} + +/* +It would be better if the phpdocumentor-element class were to become a flex element with a gap, but for #3337 that +is too big a fix and needs to be done in a new design iteration. +*/ +.phpdocumentor-signature + .phpdocumentor-label-line .phpdocumentor-label { + margin-top: var(--spacing-sm); +} + +.phpdocumentor-label span { + display: inline-block; + padding: .125rem .5rem; +} + +.phpdocumentor-label--success span:last-of-type { + background: #abe1ab; +} + +.phpdocumentor-header { + display: flex; + flex-direction: row; + align-items: stretch; + flex-wrap: wrap; + justify-content: space-between; + height: auto; + padding: var(--spacing-md) var(--spacing-md); +} + +.phpdocumentor-header__menu-button { + position: absolute; + top: -100%; + left: -100%; +} + +.phpdocumentor-header__menu-icon { + font-size: 2rem; + color: var(--primary-color); +} + +.phpdocumentor-header__menu-button:checked ~ .phpdocumentor-topnav { + max-height: 250px; + padding-top: var(--spacing-md); +} + +@media (min-width: 1000px) { + .phpdocumentor-header { + flex-direction: row; + padding: var(--spacing-lg) var(--spacing-lg); + min-height: var(--header-height); + } + + .phpdocumentor-header__menu-icon { + display: none; + } +} + +@media (min-width: 1000px) { + .phpdocumentor-header { + padding-top: 0; + padding-bottom: 0; + } +} +@media (min-width: 1200px) { + .phpdocumentor-header { + padding: 0; + } +} +.phpdocumentor-title { + box-sizing: border-box; + color: var(--title-text-color); + font-size: var(--text-xxl); + letter-spacing: .05rem; + font-weight: normal; + width: auto; + margin: 0; + display: flex; + align-items: center; +} + +.phpdocumentor-title.-without-divider { + border: none; +} + +.phpdocumentor-title__link { + transition: all .3s ease-out; + display: flex; + color: var(--title-text-color); + text-decoration: none; + font-weight: normal; + white-space: nowrap; + transform: scale(.75); + transform-origin: left; +} + +.phpdocumentor-title__link:hover { + transform: perspective(15rem) translateX(.5rem); + font-weight: 600; +} + +@media (min-width: 1000px) { + .phpdocumentor-title { + width: 22%; + border-right: var(--sidebar-border-color) solid 1px; + } + + .phpdocumentor-title__link { + transform-origin: left; + } +} + +@media (min-width: 1000px) { + .phpdocumentor-title__link { + transform: scale(.85); + } +} + +@media (min-width: 1200px) { + .phpdocumentor-title__link { + transform: scale(1); + } +} +.phpdocumentor-topnav { + display: flex; + align-items: center; + margin: 0; + max-height: 0; + overflow: hidden; + transition: max-height 0.2s ease-out; + flex-basis: 100%; +} + +.phpdocumentor-topnav__menu { + text-align: right; + list-style: none; + margin: 0; + padding: 0; + flex: 1; + display: flex; + flex-flow: row wrap; + justify-content: center; +} + +.phpdocumentor-topnav__menu-item { + margin: 0; + width: 100%; + display: inline-block; + text-align: center; + padding: var(--spacing-sm) 0 +} + +.phpdocumentor-topnav__menu-item.-social { + width: auto; + padding: var(--spacing-sm) +} + +.phpdocumentor-topnav__menu-item a { + display: inline-block; + color: var(--text-color); + text-decoration: none; + font-size: var(--text-lg); + transition: all .3s ease-out; + border-bottom: 1px dotted transparent; + line-height: 1; +} + +.phpdocumentor-topnav__menu-item a:hover { + transform: perspective(15rem) translateY(.1rem); + border-bottom: 1px dotted var(--text-color); +} + +@media (min-width: 1000px) { + .phpdocumentor-topnav { + max-height: none; + overflow: visible; + flex-basis: auto; + } + + .phpdocumentor-topnav__menu { + display: flex; + flex-flow: row wrap; + justify-content: flex-end; + } + + .phpdocumentor-topnav__menu-item, + .phpdocumentor-topnav__menu-item.-social { + width: auto; + display: inline; + text-align: right; + padding: 0 0 0 var(--spacing-md) + } +} +.phpdocumentor-sidebar { + margin: 0; + overflow: hidden; + max-height: 0; +} + +.phpdocumentor .phpdocumentor-sidebar .phpdocumentor-list { + padding: var(--spacing-xs) var(--spacing-md); + list-style: none; + margin: 0; +} + +.phpdocumentor .phpdocumentor-sidebar li { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + padding: 0 0 var(--spacing-xxxs) var(--spacing-md); +} + +.phpdocumentor .phpdocumentor-sidebar abbr, +.phpdocumentor .phpdocumentor-sidebar a { + text-decoration: none; + border-bottom: none; + color: var(--text-color); + font-size: var(--text-md); + padding-left: 0; + transition: padding-left .4s ease-out; +} + +.phpdocumentor .phpdocumentor-sidebar a:hover, +.phpdocumentor .phpdocumentor-sidebar a.-active { + padding-left: 5px; + font-weight: 600; +} + +.phpdocumentor .phpdocumentor-sidebar__category > * { + border-left: 1px solid var(--primary-color-lighten); +} + +.phpdocumentor .phpdocumentor-sidebar__category { + margin-bottom: var(--spacing-lg); +} + +.phpdocumentor .phpdocumentor-sidebar__category-header { + font-size: var(--text-md); + margin-top: 0; + margin-bottom: var(--spacing-xs); + color: var(--link-color-primary); + font-weight: 600; + border-left: 0; +} + +.phpdocumentor .phpdocumentor-sidebar__root-package, +.phpdocumentor .phpdocumentor-sidebar__root-namespace { + font-size: var(--text-md); + margin: 0; + padding-top: var(--spacing-xs); + padding-left: var(--spacing-md); + color: var(--text-color); + font-weight: normal; +} + +@media (min-width: 550px) { + .phpdocumentor-sidebar { + border-right: var(--sidebar-border-color) solid 1px; + } +} + +.phpdocumentor-sidebar__menu-button { + position: absolute; + top: -100%; + left: -100%; +} + +.phpdocumentor-sidebar__menu-icon { + font-size: var(--text-md); + font-weight: 600; + background: var(--primary-color); + color: white; + margin: 0 0 var(--spacing-lg); + display: block; + padding: var(--spacing-sm); + text-align: center; + border-radius: 3px; + text-transform: uppercase; + letter-spacing: .15rem; +} + +.phpdocumentor-sidebar__menu-button:checked ~ .phpdocumentor-sidebar { + max-height: 100%; + padding-top: var(--spacing-md); +} + +@media (min-width: 550px) { + .phpdocumentor-sidebar { + overflow: visible; + max-height: 100%; + } + + .phpdocumentor-sidebar__menu-icon { + display: none; + } +} +.phpdocumentor-admonition { + border: 1px solid var(--admonition-border-color); + border-radius: var(--border-radius-base-size); + border-color: var(--primary-color-lighten); + background-color: var(--primary-color-lighter); + padding: var(--spacing-lg); + margin: var(--spacing-lg) 0; + display: flex; + flex-direction: row; + align-items: flex-start; +} + +.phpdocumentor-admonition p:last-of-type { + margin-bottom: 0; +} + +.phpdocumentor-admonition--success, +.phpdocumentor-admonition.-success { + border-color: var(--admonition-success-color); +} + +.phpdocumentor-admonition__icon { + margin-right: var(--spacing-md); + color: var(--primary-color); + max-width: 3rem; +} +.phpdocumentor ul.phpdocumentor-breadcrumbs { + font-size: var(--text-md); + list-style: none; + margin: 0; + padding: 0; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs a { + color: var(--text-color); + text-decoration: none; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs > li { + display: inline-block; + margin: 0; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs > li + li:before { + color: var(--dark-gray); + content: "\\\A0"; + padding: 0; +} +.phpdocumentor .phpdocumentor-back-to-top { + position: fixed; + bottom: 2rem; + font-size: 2.5rem; + opacity: .25; + transition: all .3s ease-in-out; + right: 2rem; +} + +.phpdocumentor .phpdocumentor-back-to-top:hover { + color: var(--link-color-primary); + opacity: 1; +} +.phpdocumentor-search { + position: relative; + display: none; /** disable by default for non-js flow */ + opacity: .3; /** white-out default for loading indication */ + transition: opacity .3s, background .3s; + margin: var(--spacing-sm) 0; + flex: 1; + min-width: 100%; +} + +.phpdocumentor-search label { + display: flex; + align-items: center; + flex: 1; +} + +.phpdocumentor-search__icon { + color: var(--primary-color); + margin-right: var(--spacing-sm); + width: 1rem; + height: 1rem; +} + +.phpdocumentor-search--enabled { + display: flex; +} + +.phpdocumentor-search--active { + opacity: 1; +} + +.phpdocumentor-search input:disabled { + background-color: lightgray; +} + +.phpdocumentor-search__field:focus, +.phpdocumentor-search__field { + margin-bottom: 0; + border: 0; + border-bottom: 2px solid var(--primary-color); + padding: 0; + border-radius: 0; + flex: 1; +} + +@media (min-width: 1000px) { + .phpdocumentor-search { + min-width: auto; + max-width: 20rem; + margin: 0 0 0 auto; + } +} +.phpdocumentor-search-results { + backdrop-filter: blur(5px); + background: var(--popover-background-color); + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + padding: 0; + opacity: 1; + pointer-events: all; + + transition: opacity .3s, background .3s; +} + +.phpdocumentor-search-results--hidden { + background: transparent; + backdrop-filter: blur(0); + opacity: 0; + pointer-events: none; +} + +.phpdocumentor-search-results__dialog { + width: 100%; + background: white; + max-height: 100%; + display: flex; + flex-direction: column; +} + +.phpdocumentor-search-results__body { + overflow: auto; +} + +.phpdocumentor-search-results__header { + padding: var(--spacing-lg); + display: flex; + justify-content: space-between; + background: var(--primary-color-darken); + color: white; + align-items: center; +} + +.phpdocumentor-search-results__close { + font-size: var(--text-xl); + background: none; + border: none; + padding: 0; + margin: 0; +} + +.phpdocumentor .phpdocumentor-search-results__title { + font-size: var(--text-xl); + margin-bottom: 0; +} + +.phpdocumentor-search-results__entries { + list-style: none; + padding: 0 var(--spacing-lg); + margin: 0; +} + +.phpdocumentor-search-results__entry { + border-bottom: 1px solid var(--table-separator-color); + padding: var(--spacing-sm) 0; + text-align: left; +} + +.phpdocumentor-search-results__entry a { + display: block; +} + +.phpdocumentor-search-results__entry small { + margin-top: var(--spacing-xs); + margin-bottom: var(--spacing-md); + color: var(--primary-color-darker); + display: block; + word-break: break-word; +} + +.phpdocumentor-search-results__entry h3 { + font-size: var(--text-lg); + margin: 0; +} + +@media (min-width: 550px) { + .phpdocumentor-search-results { + padding: 0 var(--spacing-lg); + } + + .phpdocumentor-search-results__entry h3 { + font-size: var(--text-xxl); + } + + .phpdocumentor-search-results__dialog { + margin: var(--spacing-xl) auto; + max-width: 40rem; + background: white; + border: 1px solid silver; + box-shadow: 0 2px 5px silver; + max-height: 40rem; + border-radius: 3px; + } +} +.phpdocumentor-modal { + position: fixed; + width: 100vw; + height: 100vh; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + top: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + z-index: 1; +} + +.phpdocumentor-modal__open { + visibility: visible; + opacity: 1; + transition-delay: 0s; +} + +.phpdocumentor-modal-bg { + position: absolute; + background: gray; + opacity: 50%; + width: 100%; + height: 100%; +} + +.phpdocumentor-modal-container { + border-radius: 1em; + background: #fff; + position: relative; + padding: 2em; + box-sizing: border-box; + max-width:100vw; +} + +.phpdocumentor-modal__close { + position: absolute; + right: 0.75em; + top: 0.75em; + outline: none; + appearance: none; + color: var(--primary-color); + background: none; + border: 0px; + font-weight: bold; + cursor: pointer; +} +.phpdocumentor-on-this-page__sidebar { + display: none; +} + +.phpdocumentor-on-this-page__title { + display: block; + font-weight: bold; + margin-bottom: var(--spacing-sm); + color: var(--link-color-primary); +} + +@media (min-width: 1000px) { + .phpdocumentor-on-this-page__sidebar { + display: block; + position: relative; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar, + [scrollbars]::-webkit-scrollbar { + height: 8px; + width: 8px; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar-corner, + [scrollbars]::-webkit-scrollbar-corner { + background: 0; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar-thumb, + [scrollbars]::-webkit-scrollbar-thumb { + background: rgba(128,134,139,0.26); + border-radius: 8px; + } + + .phpdocumentor-on-this-page__content { + position: sticky; + height: calc(100vh - var(--header-height)); + overflow-y: auto; + border-left: 1px solid var(--sidebar-border-color); + padding-left: var(--spacing-lg); + font-size: 90%; + top: -1px; /* Needed for the javascript to make the .-stuck trick work */ + flex: 0 1 auto; + width: 15vw; + } + + .phpdocumentor-on-this-page__content.-stuck { + height: 100vh; + } + + .phpdocumentor-on-this-page__content li { + word-break: break-all; + line-height: normal; + } +} + +/* Used for screen readers and such */ +.visually-hidden { + display: none; +} + +.float-right { + float: right; +} + +.float-left { + float: left; +} diff --git a/php/phpdoc/css/index.html b/php/phpdoc/css/index.html new file mode 100644 index 00000000000..08c7416a737 --- /dev/null +++ b/php/phpdoc/css/index.html @@ -0,0 +1,70 @@ + + + + + Index of / + + + + +
                                                                                                                                        +

                                                                                                                                        Index of /php/phpdoc/css

                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                        + Filename + + Size + + Last Modified +
                                                                                                                                        +

                                                                                                                                        ..

                                                                                                                                        .. +
                                                                                                                                        -10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        base.css

                                                                                                                                        base.css +
                                                                                                                                        30 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        normalize.css

                                                                                                                                        normalize.css +
                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        template.css

                                                                                                                                        template.css +
                                                                                                                                        8 kB10-Aug-2025 23:25
                                                                                                                                        + + generated by apindex + + +
                                                                                                                                        + + diff --git a/php/phpdoc/css/normalize.css b/php/phpdoc/css/normalize.css new file mode 100644 index 00000000000..653dc00aaa0 --- /dev/null +++ b/php/phpdoc/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none !important; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: var(--font-monospace); + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/php/phpdoc/css/template.css b/php/phpdoc/css/template.css new file mode 100644 index 00000000000..898b676c459 --- /dev/null +++ b/php/phpdoc/css/template.css @@ -0,0 +1,271 @@ + +.phpdocumentor-content { + position: relative; + display: flex; + gap: var(--spacing-md); +} + +.phpdocumentor-content > section:first-of-type { + width: 75%; + flex: 1 1 auto; +} + +@media (min-width: 1900px) { + .phpdocumentor-content > section:first-of-type { + width: 100%; + flex: 1 1 auto; + } +} + +.phpdocumentor .phpdocumentor-content__title { + margin-top: 0; +} +.phpdocumentor-summary { + font-style: italic; +} +.phpdocumentor-description { + margin-bottom: var(--spacing-md); +} +.phpdocumentor-element { + position: relative; +} + +.phpdocumentor-element .phpdocumentor-element { + border: 1px solid var(--primary-color-lighten); + margin-bottom: var(--spacing-md); + padding: var(--spacing-xs); + border-radius: 5px; +} + +.phpdocumentor-element.-deprecated .phpdocumentor-element__name { + text-decoration: line-through; +} + +@media (min-width: 550px) { + .phpdocumentor-element .phpdocumentor-element { + margin-bottom: var(--spacing-lg); + padding: var(--spacing-md); + } +} + +.phpdocumentor-element__modifier { + font-size: var(--text-xxs); + padding: calc(var(--spacing-base-size) / 4) calc(var(--spacing-base-size) / 2); + color: var(--text-color); + background-color: var(--light-gray); + border-radius: 3px; + text-transform: uppercase; +} + +.phpdocumentor .phpdocumentor-elements__header { + margin-top: var(--spacing-xxl); + margin-bottom: var(--spacing-lg); +} + +.phpdocumentor .phpdocumentor-element__name { + line-height: 1; + margin-top: 0; + font-weight: 300; + font-size: var(--text-lg); + word-break: break-all; + margin-bottom: var(--spacing-sm); +} + +@media (min-width: 550px) { + .phpdocumentor .phpdocumentor-element__name { + font-size: var(--text-xl); + margin-bottom: var(--spacing-xs); + } +} + +@media (min-width: 1200px) { + .phpdocumentor .phpdocumentor-element__name { + margin-bottom: var(--spacing-md); + } +} + +.phpdocumentor-element__package, +.phpdocumentor-element__extends, +.phpdocumentor-element__implements { + display: block; + font-size: var(--text-xxs); + font-weight: normal; + opacity: .7; +} + +.phpdocumentor-element__package .phpdocumentor-breadcrumbs { + display: inline; +} +.phpdocumentor .phpdocumentor-signature { + display: block; + font-size: var(--text-sm); + border: 1px solid #f0f0f0; +} + +.phpdocumentor .phpdocumentor-signature.-deprecated .phpdocumentor-signature__name { + text-decoration: line-through; +} + +@media (min-width: 550px) { + .phpdocumentor .phpdocumentor-signature { + margin-left: calc(var(--spacing-xl) * -1); + width: calc(100% + var(--spacing-xl)); + } +} + +.phpdocumentor-table-of-contents { +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry { + margin-bottom: var(--spacing-xxs); + margin-left: 2rem; + display: flex; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > a { + flex: 0 1 auto; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > span { + flex: 1; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:after { + content: ''; + height: 12px; + width: 12px; + left: 16px; + position: absolute; +} +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-private:after { + background: url('data:image/svg+xml;utf8,') no-repeat; +} +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-protected:after { + left: 13px; + background: url('data:image/svg+xml;utf8,') no-repeat; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:before { + width: 1.25rem; + height: 1.25rem; + line-height: 1.25rem; + background: transparent url('data:image/svg+xml;utf8,') no-repeat center center; + content: ''; + position: absolute; + left: 0; + border-radius: 50%; + font-weight: 600; + color: white; + text-align: center; + font-size: .75rem; + margin-top: .2rem; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-method:before { + content: 'M'; + color: ''; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-function:before { + content: 'M'; + color: ' 96'; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-property:before { + content: 'P' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-constant:before { + content: 'C'; + background-color: transparent; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-class:before { + content: 'C' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-interface:before { + content: 'I' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-trait:before { + content: 'T' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-namespace:before { + content: 'N' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-package:before { + content: 'P' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-enum:before { + content: 'E' +} + +.phpdocumentor-table-of-contents dd { + font-style: italic; + margin-left: 2rem; +} +.phpdocumentor-element-found-in { + display: none; +} + +@media (min-width: 550px) { + .phpdocumentor-element-found-in { + display: block; + font-size: var(--text-sm); + color: gray; + margin-bottom: 1rem; + } +} + +@media (min-width: 1200px) { + .phpdocumentor-element-found-in { + position: absolute; + top: var(--spacing-sm); + right: var(--spacing-sm); + font-size: var(--text-sm); + margin-bottom: 0; + } +} + +.phpdocumentor-element-found-in .phpdocumentor-element-found-in__source { + flex: 0 1 auto; + display: inline-flex; +} + +.phpdocumentor-element-found-in .phpdocumentor-element-found-in__source:after { + width: 1.25rem; + height: 1.25rem; + line-height: 1.25rem; + background: transparent url('data:image/svg+xml;utf8,') no-repeat center center; + content: ''; + left: 0; + border-radius: 50%; + font-weight: 600; + text-align: center; + font-size: .75rem; + margin-top: .2rem; +} +.phpdocumentor-class-graph { + width: 100%; height: 600px; border:1px solid black; overflow: hidden +} + +.phpdocumentor-class-graph__graph { + width: 100%; +} +.phpdocumentor-tag-list__definition { + display: flex; +} + +.phpdocumentor-tag-link { + margin-right: var(--spacing-sm); +} diff --git a/php/phpdoc/files/index.html b/php/phpdoc/files/index.html new file mode 100644 index 00000000000..0525f4a4f2e --- /dev/null +++ b/php/phpdoc/files/index.html @@ -0,0 +1,574 @@ + + + + + Index of / + + + + +
                                                                                                                                        +

                                                                                                                                        Index of /php/phpdoc/files

                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                        + Filename + + Size + + Last Modified +
                                                                                                                                        +

                                                                                                                                        ..

                                                                                                                                        .. +
                                                                                                                                        -10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydb.html

                                                                                                                                        src-sql-mydb.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbcredentials.html

                                                                                                                                        src-sql-mydbcredentials.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbcredentialsinterface.html

                                                                                                                                        src-sql-mydbcredentialsinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbenvironment.html

                                                                                                                                        src-sql-mydbenvironment.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbenvironmentinterface.html

                                                                                                                                        src-sql-mydbenvironmentinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-exampleevent.html

                                                                                                                                        src-sql-mydbevent-exampleevent.html +
                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-examplelistener.html

                                                                                                                                        src-sql-mydbevent-examplelistener.html +
                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-internalconnectionbegin.html

                                                                                                                                        src-sql-mydbevent-internalconnectionbegin.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-internalconnectionend.html

                                                                                                                                        src-sql-mydbevent-internalconnectionend.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-internalevent.html

                                                                                                                                        src-sql-mydbevent-internalevent.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-internalquerybegin.html

                                                                                                                                        src-sql-mydbevent-internalquerybegin.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent-internalqueryend.html

                                                                                                                                        src-sql-mydbevent-internalqueryend.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbevent.html

                                                                                                                                        src-sql-mydbevent.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbeventinterface.html

                                                                                                                                        src-sql-mydbeventinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbeventmetadatainterface.html

                                                                                                                                        src-sql-mydbeventmetadatainterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-asyncexception.html

                                                                                                                                        src-sql-mydbexception-asyncexception.html +
                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-connectdefaultsexception.html

                                                                                                                                        src-sql-mydbexception-connectdefaultsexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-connectexception.html

                                                                                                                                        src-sql-mydbexception-connectexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-deleteexception.html

                                                                                                                                        src-sql-mydbexception-deleteexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-disconnectexception.html

                                                                                                                                        src-sql-mydbexception-disconnectexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-environmentexception.html

                                                                                                                                        src-sql-mydbexception-environmentexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-eventexception.html

                                                                                                                                        src-sql-mydbexception-eventexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-internalexception.html

                                                                                                                                        src-sql-mydbexception-internalexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-loggerexception.html

                                                                                                                                        src-sql-mydbexception-loggerexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-optionexception.html

                                                                                                                                        src-sql-mydbexception-optionexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-querybuilderescapeexception.html

                                                                                                                                        src-sql-mydbexception-querybuilderescapeexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-querybuilderexception.html

                                                                                                                                        src-sql-mydbexception-querybuilderexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-registryexception.html

                                                                                                                                        src-sql-mydbexception-registryexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-servergoneexception.html

                                                                                                                                        src-sql-mydbexception-servergoneexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-terminationsignalexception.html

                                                                                                                                        src-sql-mydbexception-terminationsignalexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionautocommitexception.html

                                                                                                                                        src-sql-mydbexception-transactionautocommitexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionbeginexception.html

                                                                                                                                        src-sql-mydbexception-transactionbeginexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionbeginreadonlyexception.html

                                                                                                                                        src-sql-mydbexception-transactionbeginreadonlyexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionbeginreadwriteexception.html

                                                                                                                                        src-sql-mydbexception-transactionbeginreadwriteexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactioncommitexception.html

                                                                                                                                        src-sql-mydbexception-transactioncommitexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionisolationexception.html

                                                                                                                                        src-sql-mydbexception-transactionisolationexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-transactionrollbackexception.html

                                                                                                                                        src-sql-mydbexception-transactionrollbackexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception-updateexception.html

                                                                                                                                        src-sql-mydbexception-updateexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexception.html

                                                                                                                                        src-sql-mydbexception.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexpression.html

                                                                                                                                        src-sql-mydbexpression.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbexpressioninterface.html

                                                                                                                                        src-sql-mydbexpressioninterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-administrationstatementsinterface.html

                                                                                                                                        src-sql-mydbinterface-administrationstatementsinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-asyncinterface.html

                                                                                                                                        src-sql-mydbinterface-asyncinterface.html +
                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-commandinterface.html

                                                                                                                                        src-sql-mydbinterface-commandinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-datamanipulationstatementsinterface.html

                                                                                                                                        src-sql-mydbinterface-datamanipulationstatementsinterface.html +
                                                                                                                                        14 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-encoderinterface.html

                                                                                                                                        src-sql-mydbinterface-encoderinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-queryinterface.html

                                                                                                                                        src-sql-mydbinterface-queryinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-remoteresourceinterface.html

                                                                                                                                        src-sql-mydbinterface-remoteresourceinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface-transactioninterface.html

                                                                                                                                        src-sql-mydbinterface-transactioninterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbinterface.html

                                                                                                                                        src-sql-mydbinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydblistener-internallistener.html

                                                                                                                                        src-sql-mydblistener-internallistener.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydblistener.html

                                                                                                                                        src-sql-mydblistener.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydblistenerinterface.html

                                                                                                                                        src-sql-mydblistenerinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydblogger.html

                                                                                                                                        src-sql-mydblogger.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliescapestringinterface.html

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliescapestringinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliresult.html

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliresult.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliresultinterface.html

                                                                                                                                        src-sql-mydbmysqli-mydbmysqliresultinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbmysqli.html

                                                                                                                                        src-sql-mydbmysqli.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbmysqliinterface.html

                                                                                                                                        src-sql-mydbmysqliinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydboptions.html

                                                                                                                                        src-sql-mydboptions.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydboptionsinterface.html

                                                                                                                                        src-sql-mydboptionsinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbquerybuilder.html

                                                                                                                                        src-sql-mydbquerybuilder.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbquerybuilderinterface.html

                                                                                                                                        src-sql-mydbquerybuilderinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbregistry.html

                                                                                                                                        src-sql-mydbregistry.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbrepository.html

                                                                                                                                        src-sql-mydbrepository.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        +

                                                                                                                                        src-sql-mydbrepositoryinterface.html

                                                                                                                                        src-sql-mydbrepositoryinterface.html +
                                                                                                                                        13 kB10-Aug-2025 23:25
                                                                                                                                        + + generated by apindex + + +
                                                                                                                                        + + diff --git a/php/phpdoc/files/src-sql-mydb.html b/php/phpdoc/files/src-sql-mydb.html new file mode 100644 index 00000000000..d11c09a7cb9 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydb.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                        +

                                                                                                                                        phpDocumentor

                                                                                                                                        + + + + + +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + + + + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                          +
                                                                                                                                        + +
                                                                                                                                        +

                                                                                                                                        Mydb.php

                                                                                                                                        + +

                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                        + +

                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                        +

                                                                                                                                        MIT License

                                                                                                                                        +

                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                        +
                                                                                                                                        + + +
                                                                                                                                        + Tags + + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        + license +
                                                                                                                                        +
                                                                                                                                        + +

                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + + + +

                                                                                                                                        + Table of Contents + + +

                                                                                                                                        + + + + +

                                                                                                                                        + Classes + + +

                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        Mydb
                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        
                                                                                                                                        +        
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + + + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        + On this page + +
                                                                                                                                          +
                                                                                                                                        • Table Of Contents
                                                                                                                                        • +
                                                                                                                                        • + +
                                                                                                                                        • + + +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Search results

                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          + + +
                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbcredentials.html b/php/phpdoc/files/src-sql-mydbcredentials.html new file mode 100644 index 00000000000..efb00e90e1c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbcredentials.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                          +

                                                                                                                                          phpDocumentor

                                                                                                                                          + + + + + +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + + + + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                            +
                                                                                                                                          + +
                                                                                                                                          +

                                                                                                                                          MydbCredentials.php

                                                                                                                                          + +

                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                          + +

                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                          +

                                                                                                                                          MIT License

                                                                                                                                          +

                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                          +
                                                                                                                                          + + +
                                                                                                                                          + Tags + + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          + license +
                                                                                                                                          +
                                                                                                                                          + +

                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + + + +

                                                                                                                                          + Table of Contents + + +

                                                                                                                                          + + + + +

                                                                                                                                          + Classes + + +

                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          MydbCredentials
                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          
                                                                                                                                          +        
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + + + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          + On this page + +
                                                                                                                                            +
                                                                                                                                          • Table Of Contents
                                                                                                                                          • +
                                                                                                                                          • + +
                                                                                                                                          • + + +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Search results

                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            + + +
                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbcredentialsinterface.html b/php/phpdoc/files/src-sql-mydbcredentialsinterface.html new file mode 100644 index 00000000000..cd9e10cd3e7 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbcredentialsinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                            +

                                                                                                                                            phpDocumentor

                                                                                                                                            + + + + + +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + + + + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                              +
                                                                                                                                            + +
                                                                                                                                            +

                                                                                                                                            MydbCredentialsInterface.php

                                                                                                                                            + +

                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                            + +

                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                            +

                                                                                                                                            MIT License

                                                                                                                                            +

                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                            +
                                                                                                                                            + + +
                                                                                                                                            + Tags + + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            + license +
                                                                                                                                            +
                                                                                                                                            + +

                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + + + +

                                                                                                                                            + Table of Contents + + +

                                                                                                                                            + + + +

                                                                                                                                            + Interfaces + + +

                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            MydbCredentialsInterface
                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            
                                                                                                                                            +        
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + + + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            + On this page + + +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            Search results

                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              + + +
                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbenvironment.html b/php/phpdoc/files/src-sql-mydbenvironment.html new file mode 100644 index 00000000000..1a1978094ae --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbenvironment.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                              +

                                                                                                                                              phpDocumentor

                                                                                                                                              + + + + + +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + + + + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                                +
                                                                                                                                              + +
                                                                                                                                              +

                                                                                                                                              MydbEnvironment.php

                                                                                                                                              + +

                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                              + +

                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                              +

                                                                                                                                              MIT License

                                                                                                                                              +

                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                              +
                                                                                                                                              + + +
                                                                                                                                              + Tags + + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              + license +
                                                                                                                                              +
                                                                                                                                              + +

                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + + + +

                                                                                                                                              + Table of Contents + + +

                                                                                                                                              + + + + +

                                                                                                                                              + Classes + + +

                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              MydbEnvironment
                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              
                                                                                                                                              +        
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + + + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              + On this page + +
                                                                                                                                                +
                                                                                                                                              • Table Of Contents
                                                                                                                                              • +
                                                                                                                                              • + +
                                                                                                                                              • + + +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              +

                                                                                                                                              Search results

                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                + + +
                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbenvironmentinterface.html b/php/phpdoc/files/src-sql-mydbenvironmentinterface.html new file mode 100644 index 00000000000..7dc851928f3 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbenvironmentinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                +

                                                                                                                                                phpDocumentor

                                                                                                                                                + + + + + +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + + + + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                  +
                                                                                                                                                + +
                                                                                                                                                +

                                                                                                                                                MydbEnvironmentInterface.php

                                                                                                                                                + +

                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                + +

                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                +

                                                                                                                                                MIT License

                                                                                                                                                +

                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                +
                                                                                                                                                + + +
                                                                                                                                                + Tags + + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                + license +
                                                                                                                                                +
                                                                                                                                                + +

                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + + + +

                                                                                                                                                + Table of Contents + + +

                                                                                                                                                + + + +

                                                                                                                                                + Interfaces + + +

                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                MydbEnvironmentInterface
                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                
                                                                                                                                                +        
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + + + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                + On this page + + +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                +

                                                                                                                                                Search results

                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  + + +
                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-exampleevent.html b/php/phpdoc/files/src-sql-mydbevent-exampleevent.html new file mode 100644 index 00000000000..c30702adbc8 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-exampleevent.html @@ -0,0 +1,163 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                  +

                                                                                                                                                  phpDocumentor

                                                                                                                                                  + + + + + +
                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  + + + + +
                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  + +
                                                                                                                                                  +

                                                                                                                                                  ExampleEvent.php

                                                                                                                                                  + + +
                                                                                                                                                  + + + + + + +

                                                                                                                                                  + Interfaces, Classes, Traits and Enums + +

                                                                                                                                                  + +
                                                                                                                                                  + +
                                                                                                                                                  ExampleEvent
                                                                                                                                                  +
                                                                                                                                                  + + +
                                                                                                                                                  + + + + + + + + +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  +

                                                                                                                                                  Search results

                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    + + +
                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-examplelistener.html b/php/phpdoc/files/src-sql-mydbevent-examplelistener.html new file mode 100644 index 00000000000..6aa9a2268b8 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-examplelistener.html @@ -0,0 +1,163 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                    +

                                                                                                                                                    phpDocumentor

                                                                                                                                                    + + + + + +
                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    + + + + +
                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    + +
                                                                                                                                                    +

                                                                                                                                                    ExampleListener.php

                                                                                                                                                    + + +
                                                                                                                                                    + + + + + + +

                                                                                                                                                    + Interfaces, Classes, Traits and Enums + +

                                                                                                                                                    + +
                                                                                                                                                    + +
                                                                                                                                                    ExampleListener
                                                                                                                                                    +
                                                                                                                                                    + + +
                                                                                                                                                    + + + + + + + + +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    +

                                                                                                                                                    Search results

                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      + + +
                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-internalconnectionbegin.html b/php/phpdoc/files/src-sql-mydbevent-internalconnectionbegin.html new file mode 100644 index 00000000000..c00b5f170b0 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-internalconnectionbegin.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                      +

                                                                                                                                                      phpDocumentor

                                                                                                                                                      + + + + + +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + + + + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                        +
                                                                                                                                                      + +
                                                                                                                                                      +

                                                                                                                                                      InternalConnectionBegin.php

                                                                                                                                                      + +

                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                      + +

                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                      +

                                                                                                                                                      MIT License

                                                                                                                                                      +

                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                      +
                                                                                                                                                      + + +
                                                                                                                                                      + Tags + + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      + license +
                                                                                                                                                      +
                                                                                                                                                      + +

                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + + + +

                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                      + + + + +

                                                                                                                                                      + Classes + + +

                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      InternalConnectionBegin
                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      
                                                                                                                                                      +        
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + + + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      + On this page + +
                                                                                                                                                        +
                                                                                                                                                      • Table Of Contents
                                                                                                                                                      • +
                                                                                                                                                      • + +
                                                                                                                                                      • + + +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      +

                                                                                                                                                      Search results

                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-internalconnectionend.html b/php/phpdoc/files/src-sql-mydbevent-internalconnectionend.html new file mode 100644 index 00000000000..fe340e9ebf6 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-internalconnectionend.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        +

                                                                                                                                                        phpDocumentor

                                                                                                                                                        + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                          +
                                                                                                                                                        + +
                                                                                                                                                        +

                                                                                                                                                        InternalConnectionEnd.php

                                                                                                                                                        + +

                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                        + +

                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                        +

                                                                                                                                                        MIT License

                                                                                                                                                        +

                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                        +
                                                                                                                                                        + + +
                                                                                                                                                        + Tags + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + license +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + +

                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                        + + + + +

                                                                                                                                                        + Classes + + +

                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        InternalConnectionEnd
                                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        
                                                                                                                                                        +        
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + + + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        + On this page + +
                                                                                                                                                          +
                                                                                                                                                        • Table Of Contents
                                                                                                                                                        • +
                                                                                                                                                        • + +
                                                                                                                                                        • + + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        +

                                                                                                                                                        Search results

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + + +
                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-internalevent.html b/php/phpdoc/files/src-sql-mydbevent-internalevent.html new file mode 100644 index 00000000000..65c6f830d67 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-internalevent.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                          +

                                                                                                                                                          phpDocumentor

                                                                                                                                                          + + + + + +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + + + + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                            +
                                                                                                                                                          + +
                                                                                                                                                          +

                                                                                                                                                          InternalEvent.php

                                                                                                                                                          + +

                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                          + +

                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                          +

                                                                                                                                                          MIT License

                                                                                                                                                          +

                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                          +
                                                                                                                                                          + + +
                                                                                                                                                          + Tags + + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + license +
                                                                                                                                                          +
                                                                                                                                                          + +

                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + + + +

                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                          + + + + +

                                                                                                                                                          + Classes + + +

                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          InternalEvent
                                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          
                                                                                                                                                          +        
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + + + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          + On this page + +
                                                                                                                                                            +
                                                                                                                                                          • Table Of Contents
                                                                                                                                                          • +
                                                                                                                                                          • + +
                                                                                                                                                          • + + +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +

                                                                                                                                                          Search results

                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + + +
                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-internalquerybegin.html b/php/phpdoc/files/src-sql-mydbevent-internalquerybegin.html new file mode 100644 index 00000000000..1c195c9eb91 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-internalquerybegin.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                            +

                                                                                                                                                            phpDocumentor

                                                                                                                                                            + + + + + +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + + + + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                              +
                                                                                                                                                            + +
                                                                                                                                                            +

                                                                                                                                                            InternalQueryBegin.php

                                                                                                                                                            + +

                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                            + +

                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                            +

                                                                                                                                                            MIT License

                                                                                                                                                            +

                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                            +
                                                                                                                                                            + + +
                                                                                                                                                            + Tags + + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + license +
                                                                                                                                                            +
                                                                                                                                                            + +

                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + + + +

                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                            + + + + +

                                                                                                                                                            + Classes + + +

                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            InternalQueryBegin
                                                                                                                                                            + + + + + + + + + + + + + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            
                                                                                                                                                            +        
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + + + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            + On this page + +
                                                                                                                                                              +
                                                                                                                                                            • Table Of Contents
                                                                                                                                                            • +
                                                                                                                                                            • + +
                                                                                                                                                            • + + +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            +

                                                                                                                                                            Search results

                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + + +
                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent-internalqueryend.html b/php/phpdoc/files/src-sql-mydbevent-internalqueryend.html new file mode 100644 index 00000000000..cf137d59000 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent-internalqueryend.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                              +

                                                                                                                                                              phpDocumentor

                                                                                                                                                              + + + + + +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + + + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                                +
                                                                                                                                                              + +
                                                                                                                                                              +

                                                                                                                                                              InternalQueryEnd.php

                                                                                                                                                              + +

                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                              + +

                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                              +

                                                                                                                                                              MIT License

                                                                                                                                                              +

                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                              +
                                                                                                                                                              + + +
                                                                                                                                                              + Tags + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + license +
                                                                                                                                                              +
                                                                                                                                                              + +

                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + + + +

                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                              + + + + +

                                                                                                                                                              + Classes + + +

                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              InternalQueryEnd
                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              
                                                                                                                                                              +        
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + + + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              + On this page + +
                                                                                                                                                                +
                                                                                                                                                              • Table Of Contents
                                                                                                                                                              • +
                                                                                                                                                              • + +
                                                                                                                                                              • + + +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              +

                                                                                                                                                              Search results

                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                + + +
                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbevent.html b/php/phpdoc/files/src-sql-mydbevent.html new file mode 100644 index 00000000000..d68290cc813 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbevent.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                +

                                                                                                                                                                phpDocumentor

                                                                                                                                                                + + + + + +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + + + + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                  +
                                                                                                                                                                + +
                                                                                                                                                                +

                                                                                                                                                                MydbEvent.php

                                                                                                                                                                + +

                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                + +

                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                +

                                                                                                                                                                MIT License

                                                                                                                                                                +

                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                +
                                                                                                                                                                + + +
                                                                                                                                                                + Tags + + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                + license +
                                                                                                                                                                +
                                                                                                                                                                + +

                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + + + +

                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                + + + + +

                                                                                                                                                                + Classes + + +

                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                MydbEvent
                                                                                                                                                                + + + + + + + + + + + + + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                
                                                                                                                                                                +        
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + + + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                + On this page + +
                                                                                                                                                                  +
                                                                                                                                                                • Table Of Contents
                                                                                                                                                                • +
                                                                                                                                                                • + +
                                                                                                                                                                • + + +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                +

                                                                                                                                                                Search results

                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  + + +
                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbeventinterface.html b/php/phpdoc/files/src-sql-mydbeventinterface.html new file mode 100644 index 00000000000..70e558268d9 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbeventinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                  +

                                                                                                                                                                  phpDocumentor

                                                                                                                                                                  + + + + + +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + + + + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                    +
                                                                                                                                                                  + +
                                                                                                                                                                  +

                                                                                                                                                                  MydbEventInterface.php

                                                                                                                                                                  + +

                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                  + +

                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                  +

                                                                                                                                                                  MIT License

                                                                                                                                                                  +

                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                  +
                                                                                                                                                                  + + +
                                                                                                                                                                  + Tags + + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  + license +
                                                                                                                                                                  +
                                                                                                                                                                  + +

                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + + + +

                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                  + + + +

                                                                                                                                                                  + Interfaces + + +

                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  MydbEventInterface
                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  
                                                                                                                                                                  +        
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + + + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  + On this page + + +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Search results

                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    + + +
                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbeventmetadatainterface.html b/php/phpdoc/files/src-sql-mydbeventmetadatainterface.html new file mode 100644 index 00000000000..fcc6d941128 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbeventmetadatainterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                    +

                                                                                                                                                                    phpDocumentor

                                                                                                                                                                    + + + + + +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + + + + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                      +
                                                                                                                                                                    + +
                                                                                                                                                                    +

                                                                                                                                                                    MydbEventMetadataInterface.php

                                                                                                                                                                    + +

                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                    + +

                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                    +

                                                                                                                                                                    MIT License

                                                                                                                                                                    +

                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                    +
                                                                                                                                                                    + + +
                                                                                                                                                                    + Tags + + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    + license +
                                                                                                                                                                    +
                                                                                                                                                                    + +

                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + + + +

                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                    + + + +

                                                                                                                                                                    + Interfaces + + +

                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    MydbEventMetadataInterface
                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    
                                                                                                                                                                    +        
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + + + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    + On this page + + +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    +

                                                                                                                                                                    Search results

                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      + + +
                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-asyncexception.html b/php/phpdoc/files/src-sql-mydbexception-asyncexception.html new file mode 100644 index 00000000000..2ad43e7f96d --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-asyncexception.html @@ -0,0 +1,167 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      +

                                                                                                                                                                      phpDocumentor

                                                                                                                                                                      + + + + + +
                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      + + + + +
                                                                                                                                                                      +
                                                                                                                                                                        +
                                                                                                                                                                      + +
                                                                                                                                                                      +

                                                                                                                                                                      AsyncException.php

                                                                                                                                                                      + + +
                                                                                                                                                                      + + + + + + +

                                                                                                                                                                      + Interfaces, Classes, Traits and Enums + +

                                                                                                                                                                      + +
                                                                                                                                                                      + +
                                                                                                                                                                      AsyncException
                                                                                                                                                                      +
                                                                                                                                                                      + + +
                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      +

                                                                                                                                                                      Search results

                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        + + +
                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-connectdefaultsexception.html b/php/phpdoc/files/src-sql-mydbexception-connectdefaultsexception.html new file mode 100644 index 00000000000..a67f5a3d58f --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-connectdefaultsexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                        +

                                                                                                                                                                        phpDocumentor

                                                                                                                                                                        + + + + + +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + + + + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                          +
                                                                                                                                                                        + +
                                                                                                                                                                        +

                                                                                                                                                                        ConnectDefaultsException.php

                                                                                                                                                                        + +

                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                        + +

                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                        +

                                                                                                                                                                        MIT License

                                                                                                                                                                        +

                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                        +
                                                                                                                                                                        + + +
                                                                                                                                                                        + Tags + + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        + license +
                                                                                                                                                                        +
                                                                                                                                                                        + +

                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + + + +

                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                        + + + + +

                                                                                                                                                                        + Classes + + +

                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        ConnectDefaultsException
                                                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        
                                                                                                                                                                        +        
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + + + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        + On this page + +
                                                                                                                                                                          +
                                                                                                                                                                        • Table Of Contents
                                                                                                                                                                        • +
                                                                                                                                                                        • + +
                                                                                                                                                                        • + + +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        +

                                                                                                                                                                        Search results

                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          + + +
                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-connectexception.html b/php/phpdoc/files/src-sql-mydbexception-connectexception.html new file mode 100644 index 00000000000..d39ef0fa9ed --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-connectexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                          +

                                                                                                                                                                          phpDocumentor

                                                                                                                                                                          + + + + + +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + + + + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                          + +
                                                                                                                                                                          +

                                                                                                                                                                          ConnectException.php

                                                                                                                                                                          + +

                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                          + +

                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                          +

                                                                                                                                                                          MIT License

                                                                                                                                                                          +

                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                          +
                                                                                                                                                                          + + +
                                                                                                                                                                          + Tags + + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          + license +
                                                                                                                                                                          +
                                                                                                                                                                          + +

                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + + + +

                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                          + + + + +

                                                                                                                                                                          + Classes + + +

                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          ConnectException
                                                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          
                                                                                                                                                                          +        
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + + + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          + On this page + +
                                                                                                                                                                            +
                                                                                                                                                                          • Table Of Contents
                                                                                                                                                                          • +
                                                                                                                                                                          • + +
                                                                                                                                                                          • + + +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          +

                                                                                                                                                                          Search results

                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            + + +
                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-deleteexception.html b/php/phpdoc/files/src-sql-mydbexception-deleteexception.html new file mode 100644 index 00000000000..949bb395a87 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-deleteexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                            +

                                                                                                                                                                            phpDocumentor

                                                                                                                                                                            + + + + + +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + + + + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                              +
                                                                                                                                                                            + +
                                                                                                                                                                            +

                                                                                                                                                                            DeleteException.php

                                                                                                                                                                            + +

                                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                            + +

                                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                            +

                                                                                                                                                                            MIT License

                                                                                                                                                                            +

                                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                            +
                                                                                                                                                                            + + +
                                                                                                                                                                            + Tags + + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            + license +
                                                                                                                                                                            +
                                                                                                                                                                            + +

                                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + + + +

                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                            + + + + +

                                                                                                                                                                            + Classes + + +

                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            DeleteException
                                                                                                                                                                            + + + + + + + + + + + + + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            
                                                                                                                                                                            +        
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + + + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            + On this page + +
                                                                                                                                                                              +
                                                                                                                                                                            • Table Of Contents
                                                                                                                                                                            • +
                                                                                                                                                                            • + +
                                                                                                                                                                            • + + +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            Search results

                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              + + +
                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-disconnectexception.html b/php/phpdoc/files/src-sql-mydbexception-disconnectexception.html new file mode 100644 index 00000000000..8ab53a6323b --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-disconnectexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                              +

                                                                                                                                                                              phpDocumentor

                                                                                                                                                                              + + + + + +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + + + + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                                +
                                                                                                                                                                              + +
                                                                                                                                                                              +

                                                                                                                                                                              DisconnectException.php

                                                                                                                                                                              + +

                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                              + +

                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                              +

                                                                                                                                                                              MIT License

                                                                                                                                                                              +

                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                              +
                                                                                                                                                                              + + +
                                                                                                                                                                              + Tags + + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              + license +
                                                                                                                                                                              +
                                                                                                                                                                              + +

                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + + + +

                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                              + + + + +

                                                                                                                                                                              + Classes + + +

                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              DisconnectException
                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              
                                                                                                                                                                              +        
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + + + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              + On this page + +
                                                                                                                                                                                +
                                                                                                                                                                              • Table Of Contents
                                                                                                                                                                              • +
                                                                                                                                                                              • + +
                                                                                                                                                                              • + + +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              Search results

                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                + + +
                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-environmentexception.html b/php/phpdoc/files/src-sql-mydbexception-environmentexception.html new file mode 100644 index 00000000000..bc0392a6029 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-environmentexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                +

                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                + + + + + +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                  +
                                                                                                                                                                                + +
                                                                                                                                                                                +

                                                                                                                                                                                EnvironmentException.php

                                                                                                                                                                                + +

                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                + +

                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                +

                                                                                                                                                                                MIT License

                                                                                                                                                                                +

                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                +
                                                                                                                                                                                + + +
                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                + license +
                                                                                                                                                                                +
                                                                                                                                                                                + +

                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + +

                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                + + + + +

                                                                                                                                                                                + Classes + + +

                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                EnvironmentException
                                                                                                                                                                                + + + + + + + + + + + + + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                
                                                                                                                                                                                +        
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                + On this page + +
                                                                                                                                                                                  +
                                                                                                                                                                                • Table Of Contents
                                                                                                                                                                                • +
                                                                                                                                                                                • + +
                                                                                                                                                                                • + + +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                Search results

                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  + + +
                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-eventexception.html b/php/phpdoc/files/src-sql-mydbexception-eventexception.html new file mode 100644 index 00000000000..80eb86b103a --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-eventexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                  +

                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + + + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                    +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +

                                                                                                                                                                                  EventException.php

                                                                                                                                                                                  + +

                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                  + +

                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                  +

                                                                                                                                                                                  MIT License

                                                                                                                                                                                  +

                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                  +
                                                                                                                                                                                  + + +
                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  + license +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +

                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + + + +

                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                  + + + + +

                                                                                                                                                                                  + Classes + + +

                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  EventException
                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  
                                                                                                                                                                                  +        
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                    +
                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                  • +
                                                                                                                                                                                  • + +
                                                                                                                                                                                  • + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  +

                                                                                                                                                                                  Search results

                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    + + +
                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-internalexception.html b/php/phpdoc/files/src-sql-mydbexception-internalexception.html new file mode 100644 index 00000000000..04fb609dd3c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-internalexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                    +

                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + + + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                      +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +

                                                                                                                                                                                    InternalException.php

                                                                                                                                                                                    + +

                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                    + +

                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                    +

                                                                                                                                                                                    MIT License

                                                                                                                                                                                    +

                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                    +
                                                                                                                                                                                    + + +
                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    + license +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +

                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + + + +

                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                    + + + + +

                                                                                                                                                                                    + Classes + + +

                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    InternalException
                                                                                                                                                                                    + + + + + + + + + + + + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    
                                                                                                                                                                                    +        
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    + On this page + +
                                                                                                                                                                                      +
                                                                                                                                                                                    • Table Of Contents
                                                                                                                                                                                    • +
                                                                                                                                                                                    • + +
                                                                                                                                                                                    • + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    +

                                                                                                                                                                                    Search results

                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      + + +
                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-loggerexception.html b/php/phpdoc/files/src-sql-mydbexception-loggerexception.html new file mode 100644 index 00000000000..4ed013d80e8 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-loggerexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                      +

                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + + + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                        +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +

                                                                                                                                                                                      LoggerException.php

                                                                                                                                                                                      + +

                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                      + +

                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                      +

                                                                                                                                                                                      MIT License

                                                                                                                                                                                      +

                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                      +
                                                                                                                                                                                      + + +
                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      + license +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +

                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + + + +

                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                      + + + + +

                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      LoggerException
                                                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      
                                                                                                                                                                                      +        
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                        +
                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                      • +
                                                                                                                                                                                      • + +
                                                                                                                                                                                      • + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      +

                                                                                                                                                                                      Search results

                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        + + +
                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-optionexception.html b/php/phpdoc/files/src-sql-mydbexception-optionexception.html new file mode 100644 index 00000000000..1aff81c5575 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-optionexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                        +

                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + + + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                          +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +

                                                                                                                                                                                        OptionException.php

                                                                                                                                                                                        + +

                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                        + +

                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                        +

                                                                                                                                                                                        MIT License

                                                                                                                                                                                        +

                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                        +
                                                                                                                                                                                        + + +
                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        + license +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +

                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + + + +

                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                        + + + + +

                                                                                                                                                                                        + Classes + + +

                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        OptionException
                                                                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        
                                                                                                                                                                                        +        
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        + On this page + +
                                                                                                                                                                                          +
                                                                                                                                                                                        • Table Of Contents
                                                                                                                                                                                        • +
                                                                                                                                                                                        • + +
                                                                                                                                                                                        • + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        Search results

                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          + + +
                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-querybuilderescapeexception.html b/php/phpdoc/files/src-sql-mydbexception-querybuilderescapeexception.html new file mode 100644 index 00000000000..1b373977450 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-querybuilderescapeexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                          +

                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + + + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                            +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +

                                                                                                                                                                                          QueryBuilderEscapeException.php

                                                                                                                                                                                          + +

                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                          + +

                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                          +

                                                                                                                                                                                          MIT License

                                                                                                                                                                                          +

                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                          +
                                                                                                                                                                                          + + +
                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          + license +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +

                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + + + +

                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                          + + + + +

                                                                                                                                                                                          + Classes + + +

                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          QueryBuilderEscapeException
                                                                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          
                                                                                                                                                                                          +        
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + On this page + +
                                                                                                                                                                                            +
                                                                                                                                                                                          • Table Of Contents
                                                                                                                                                                                          • +
                                                                                                                                                                                          • + +
                                                                                                                                                                                          • + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          +

                                                                                                                                                                                          Search results

                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            + + +
                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-querybuilderexception.html b/php/phpdoc/files/src-sql-mydbexception-querybuilderexception.html new file mode 100644 index 00000000000..9df629f482c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-querybuilderexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                            +

                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + + + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                              +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +

                                                                                                                                                                                            QueryBuilderException.php

                                                                                                                                                                                            + +

                                                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                            + +

                                                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                            +

                                                                                                                                                                                            MIT License

                                                                                                                                                                                            +

                                                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                            +
                                                                                                                                                                                            + + +
                                                                                                                                                                                            + Tags + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            + license +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +

                                                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + + + +

                                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                                            + + + + +

                                                                                                                                                                                            + Classes + + +

                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            QueryBuilderException
                                                                                                                                                                                            + + + + + + + + + + + + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            
                                                                                                                                                                                            +        
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + On this page + +
                                                                                                                                                                                              +
                                                                                                                                                                                            • Table Of Contents
                                                                                                                                                                                            • +
                                                                                                                                                                                            • + +
                                                                                                                                                                                            • + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            +

                                                                                                                                                                                            Search results

                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              + + +
                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-registryexception.html b/php/phpdoc/files/src-sql-mydbexception-registryexception.html new file mode 100644 index 00000000000..43068108b58 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-registryexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                              +

                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + + + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                                +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +

                                                                                                                                                                                              RegistryException.php

                                                                                                                                                                                              + +

                                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                              + +

                                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                              +

                                                                                                                                                                                              MIT License

                                                                                                                                                                                              +

                                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                              +
                                                                                                                                                                                              + + +
                                                                                                                                                                                              + Tags + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              + license +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +

                                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + + + +

                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                              + + + + +

                                                                                                                                                                                              + Classes + + +

                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              RegistryException
                                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              
                                                                                                                                                                                              +        
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              + On this page + +
                                                                                                                                                                                                +
                                                                                                                                                                                              • Table Of Contents
                                                                                                                                                                                              • +
                                                                                                                                                                                              • + +
                                                                                                                                                                                              • + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              +

                                                                                                                                                                                              Search results

                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                + + +
                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-servergoneexception.html b/php/phpdoc/files/src-sql-mydbexception-servergoneexception.html new file mode 100644 index 00000000000..cef819e41f7 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-servergoneexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                +

                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                  +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +

                                                                                                                                                                                                ServerGoneException.php

                                                                                                                                                                                                + +

                                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                + +

                                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                +

                                                                                                                                                                                                MIT License

                                                                                                                                                                                                +

                                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                +
                                                                                                                                                                                                + + +
                                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                + license +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +

                                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + + + +

                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                + + + + +

                                                                                                                                                                                                + Classes + + +

                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                ServerGoneException
                                                                                                                                                                                                + + + + + + + + + + + + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                
                                                                                                                                                                                                +        
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                + On this page + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                • Table Of Contents
                                                                                                                                                                                                • +
                                                                                                                                                                                                • + +
                                                                                                                                                                                                • + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                Search results

                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + +
                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-terminationsignalexception.html b/php/phpdoc/files/src-sql-mydbexception-terminationsignalexception.html new file mode 100644 index 00000000000..3354a167923 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-terminationsignalexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                  +

                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                    +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +

                                                                                                                                                                                                  TerminationSignalException.php

                                                                                                                                                                                                  + +

                                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                  + +

                                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                  +

                                                                                                                                                                                                  MIT License

                                                                                                                                                                                                  +

                                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + +
                                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + license +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +

                                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                  + + + + +

                                                                                                                                                                                                  + Classes + + +

                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  TerminationSignalException
                                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  
                                                                                                                                                                                                  +        
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • + +
                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +

                                                                                                                                                                                                  Search results

                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + +
                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionautocommitexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionautocommitexception.html new file mode 100644 index 00000000000..4b1c9994fd9 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionautocommitexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    TransactionAutocommitException.php

                                                                                                                                                                                                    + +

                                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                    + +

                                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                    +

                                                                                                                                                                                                    MIT License

                                                                                                                                                                                                    +

                                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + +
                                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + license +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +

                                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                    + + + + +

                                                                                                                                                                                                    + Classes + + +

                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    TransactionAutocommitException
                                                                                                                                                                                                    + + + + + + + + + + + + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    
                                                                                                                                                                                                    +        
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    + On this page + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • Table Of Contents
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • + +
                                                                                                                                                                                                    • + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    Search results

                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + +
                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionbeginexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionbeginexception.html new file mode 100644 index 00000000000..0bd94df19e2 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionbeginexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                        +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      TransactionBeginException.php

                                                                                                                                                                                                      + +

                                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                      + +

                                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                      +

                                                                                                                                                                                                      MIT License

                                                                                                                                                                                                      +

                                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + +
                                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + license +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +

                                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                      + + + + +

                                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      TransactionBeginException
                                                                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      
                                                                                                                                                                                                      +        
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                                      • +
                                                                                                                                                                                                      • + +
                                                                                                                                                                                                      • + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      Search results

                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + +
                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadonlyexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadonlyexception.html new file mode 100644 index 00000000000..aadb0e9cbe9 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadonlyexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                          +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        TransactionBeginReadonlyException.php

                                                                                                                                                                                                        + +

                                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                        + +

                                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                        +

                                                                                                                                                                                                        MIT License

                                                                                                                                                                                                        +

                                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + +
                                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + license +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +

                                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                        + + + + +

                                                                                                                                                                                                        + Classes + + +

                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        TransactionBeginReadonlyException
                                                                                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        
                                                                                                                                                                                                        +        
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        + On this page + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                        • Table Of Contents
                                                                                                                                                                                                        • +
                                                                                                                                                                                                        • + +
                                                                                                                                                                                                        • + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        Search results

                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + +
                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadwriteexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadwriteexception.html new file mode 100644 index 00000000000..619691b6243 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionbeginreadwriteexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                          +

                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                            +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +

                                                                                                                                                                                                          TransactionBeginReadwriteException.php

                                                                                                                                                                                                          + +

                                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                          + +

                                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                          +

                                                                                                                                                                                                          MIT License

                                                                                                                                                                                                          +

                                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + +
                                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + license +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +

                                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                          + + + + +

                                                                                                                                                                                                          + Classes + + +

                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          TransactionBeginReadwriteException
                                                                                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          
                                                                                                                                                                                                          +        
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          + On this page + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                          • Table Of Contents
                                                                                                                                                                                                          • +
                                                                                                                                                                                                          • + +
                                                                                                                                                                                                          • + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +

                                                                                                                                                                                                          Search results

                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + +
                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactioncommitexception.html b/php/phpdoc/files/src-sql-mydbexception-transactioncommitexception.html new file mode 100644 index 00000000000..647a44fdbd8 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactioncommitexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                            +

                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                              +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +

                                                                                                                                                                                                            TransactionCommitException.php

                                                                                                                                                                                                            + +

                                                                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                            + +

                                                                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                            +

                                                                                                                                                                                                            MIT License

                                                                                                                                                                                                            +

                                                                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + +
                                                                                                                                                                                                            + Tags + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + license +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +

                                                                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + + +

                                                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                                                            + + + + +

                                                                                                                                                                                                            + Classes + + +

                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            TransactionCommitException
                                                                                                                                                                                                            + + + + + + + + + + + + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            
                                                                                                                                                                                                            +        
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            + On this page + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                            • Table Of Contents
                                                                                                                                                                                                            • +
                                                                                                                                                                                                            • + +
                                                                                                                                                                                                            • + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +

                                                                                                                                                                                                            Search results

                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + +
                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionisolationexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionisolationexception.html new file mode 100644 index 00000000000..be0eb2e65b3 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionisolationexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                              +

                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                                +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +

                                                                                                                                                                                                              TransactionIsolationException.php

                                                                                                                                                                                                              + +

                                                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                              + +

                                                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                              +

                                                                                                                                                                                                              MIT License

                                                                                                                                                                                                              +

                                                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + +
                                                                                                                                                                                                              + Tags + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + license +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +

                                                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                              + + + + +

                                                                                                                                                                                                              + Classes + + +

                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              TransactionIsolationException
                                                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              
                                                                                                                                                                                                              +        
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              + On this page + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                              • Table Of Contents
                                                                                                                                                                                                              • +
                                                                                                                                                                                                              • + +
                                                                                                                                                                                                              • + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +

                                                                                                                                                                                                              Search results

                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-transactionrollbackexception.html b/php/phpdoc/files/src-sql-mydbexception-transactionrollbackexception.html new file mode 100644 index 00000000000..b4ab4a6bccd --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-transactionrollbackexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                TransactionRollbackException.php

                                                                                                                                                                                                                + +

                                                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                + +

                                                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                +

                                                                                                                                                                                                                MIT License

                                                                                                                                                                                                                +

                                                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + license +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +

                                                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                                + + + + +

                                                                                                                                                                                                                + Classes + + +

                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                TransactionRollbackException
                                                                                                                                                                                                                + + + + + + + + + + + + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                
                                                                                                                                                                                                                +        
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                + On this page + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                • Table Of Contents
                                                                                                                                                                                                                • +
                                                                                                                                                                                                                • + +
                                                                                                                                                                                                                • + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception-updateexception.html b/php/phpdoc/files/src-sql-mydbexception-updateexception.html new file mode 100644 index 00000000000..a15f77f35c6 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception-updateexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  UpdateException.php

                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  MIT License

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + license +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                  + + + + +

                                                                                                                                                                                                                  + Classes + + +

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  UpdateException
                                                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  
                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                  • + +
                                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexception.html b/php/phpdoc/files/src-sql-mydbexception.html new file mode 100644 index 00000000000..6caa24e2534 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexception.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    MydbException.php

                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    MIT License

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + license +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                                    + + + + +

                                                                                                                                                                                                                    + Classes + + +

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    MydbException
                                                                                                                                                                                                                    + + + + + + + + + + + + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    
                                                                                                                                                                                                                    +        
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    + On this page + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                    • Table Of Contents
                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                    • + +
                                                                                                                                                                                                                    • + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexpression.html b/php/phpdoc/files/src-sql-mydbexpression.html new file mode 100644 index 00000000000..9263b75833b --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexpression.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      MydbExpression.php

                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      MIT License

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + license +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                                      + + + + +

                                                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      MydbExpression
                                                                                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      
                                                                                                                                                                                                                      +        
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                      • + +
                                                                                                                                                                                                                      • + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbexpressioninterface.html b/php/phpdoc/files/src-sql-mydbexpressioninterface.html new file mode 100644 index 00000000000..1a5241f2d33 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbexpressioninterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        MydbExpressionInterface.php

                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        MIT License

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + license +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                        + Interfaces + + +

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        MydbExpressionInterface
                                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        
                                                                                                                                                                                                                        +        
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        + On this page + + +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-administrationstatementsinterface.html b/php/phpdoc/files/src-sql-mydbinterface-administrationstatementsinterface.html new file mode 100644 index 00000000000..5c0a8851aa9 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-administrationstatementsinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          AdministrationStatementsInterface.php

                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          MIT License

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + license +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                          + Interfaces + + +

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          AdministrationStatementsInterface
                                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          
                                                                                                                                                                                                                          +        
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          + On this page + + +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Search results

                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-asyncinterface.html b/php/phpdoc/files/src-sql-mydbinterface-asyncinterface.html new file mode 100644 index 00000000000..a58c62a82ab --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-asyncinterface.html @@ -0,0 +1,167 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            AsyncInterface.php

                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                            + + + + + + +

                                                                                                                                                                                                                            + Interfaces, Classes, Traits and Enums + +

                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            AsyncInterface
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + + + +
                                                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Search results

                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-commandinterface.html b/php/phpdoc/files/src-sql-mydbinterface-commandinterface.html new file mode 100644 index 00000000000..b5ec9262d7c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-commandinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              CommandInterface.php

                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              MIT License

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                              + Tags + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + license +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                                              + Interfaces + + +

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              CommandInterface
                                                                                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              
                                                                                                                                                                                                                              +        
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              + On this page + + +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Search results

                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-datamanipulationstatementsinterface.html b/php/phpdoc/files/src-sql-mydbinterface-datamanipulationstatementsinterface.html new file mode 100644 index 00000000000..c02c35faf6d --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-datamanipulationstatementsinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                DataManipulationStatementsInterface.php

                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                MIT License

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + license +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                + Interfaces + + +

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                DataManipulationStatementsInterface
                                                                                                                                                                                                                                These statements do not implicitly commit the current transaction.
                                                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                
                                                                                                                                                                                                                                +        
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                + On this page + + +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-encoderinterface.html b/php/phpdoc/files/src-sql-mydbinterface-encoderinterface.html new file mode 100644 index 00000000000..732b91be2b3 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-encoderinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  EncoderInterface.php

                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  MIT License

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + license +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                                                  + Interfaces + + +

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  EncoderInterface
                                                                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  + On this page + + +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-queryinterface.html b/php/phpdoc/files/src-sql-mydbinterface-queryinterface.html new file mode 100644 index 00000000000..d18cdf06b8a --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-queryinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    QueryInterface.php

                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    MIT License

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + license +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                    + Interfaces + + +

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    QueryInterface
                                                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                    +        
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    + On this page + + +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-remoteresourceinterface.html b/php/phpdoc/files/src-sql-mydbinterface-remoteresourceinterface.html new file mode 100644 index 00000000000..ac016bf93a4 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-remoteresourceinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      RemoteResourceInterface.php

                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      MIT License

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + license +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                                      + Interfaces + + +

                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      RemoteResourceInterface
                                                                                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                      +        
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      + On this page + + +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface-transactioninterface.html b/php/phpdoc/files/src-sql-mydbinterface-transactioninterface.html new file mode 100644 index 00000000000..fe445d15f07 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface-transactioninterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        TransactionInterface.php

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        MIT License

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + license +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                        + Interfaces + + +

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        TransactionInterface
                                                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                        +        
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        + On this page + + +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbinterface.html b/php/phpdoc/files/src-sql-mydbinterface.html new file mode 100644 index 00000000000..594ef017b0c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          MydbInterface.php

                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          MIT License

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + license +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                                          + Interfaces + + +

                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          MydbInterface
                                                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          +        
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          + On this page + + +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Search results

                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydblistener-internallistener.html b/php/phpdoc/files/src-sql-mydblistener-internallistener.html new file mode 100644 index 00000000000..06f6ffd1ef3 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydblistener-internallistener.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            InternalListener.php

                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            MIT License

                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                            + Tags + + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + license +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + + + +

                                                                                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                                                                                            + + + + +

                                                                                                                                                                                                                                            + Classes + + +

                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            InternalListener
                                                                                                                                                                                                                                            + + + + + + + + + + + + + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                            +        
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + + + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            + On this page + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                            • Table Of Contents
                                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                                            • + +
                                                                                                                                                                                                                                            • + + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            Search results

                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydblistener.html b/php/phpdoc/files/src-sql-mydblistener.html new file mode 100644 index 00000000000..d80831c4703 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydblistener.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                              MydbListener.php

                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                              MIT License

                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                              + Tags + + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + license +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                                                              + + + + +

                                                                                                                                                                                                                                              + Classes + + +

                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              MydbListener
                                                                                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                              +        
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + + + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              + On this page + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                              • Table Of Contents
                                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                                              • + +
                                                                                                                                                                                                                                              • + + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                              Search results

                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydblistenerinterface.html b/php/phpdoc/files/src-sql-mydblistenerinterface.html new file mode 100644 index 00000000000..9eb095ffcfc --- /dev/null +++ b/php/phpdoc/files/src-sql-mydblistenerinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                MydbListenerInterface.php

                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                MIT License

                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + license +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                                + Interfaces + + +

                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                MydbListenerInterface
                                                                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                +        
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + + + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                + On this page + + +
                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydblogger.html b/php/phpdoc/files/src-sql-mydblogger.html new file mode 100644 index 00000000000..18ce1ae570c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydblogger.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                  MydbLogger.php

                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                  MIT License

                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + license +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                                                  + + + + +

                                                                                                                                                                                                                                                  + Classes + + +

                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  MydbLogger
                                                                                                                                                                                                                                                  Implementation of PSR-3 Logger that will output to STDERR & STDOUT
                                                                                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                  • + +
                                                                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliescapestringinterface.html b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliescapestringinterface.html new file mode 100644 index 00000000000..b30e82a59b0 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliescapestringinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    MydbMysqliEscapeStringInterface.php

                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    MIT License

                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + license +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                                    + Interfaces + + +

                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    MydbMysqliEscapeStringInterface
                                                                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                    +        
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    + On this page + + +
                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresult.html b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresult.html new file mode 100644 index 00000000000..b618b404810 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresult.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                      MydbMysqliResult.php

                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                      MIT License

                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + license +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                                                                      + + + + +

                                                                                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      MydbMysqliResult
                                                                                                                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                      +        
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                      • + +
                                                                                                                                                                                                                                                      • + + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresultinterface.html b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresultinterface.html new file mode 100644 index 00000000000..a6c0d57600b --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbmysqli-mydbmysqliresultinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        MydbMysqliResultInterface.php

                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        MIT License

                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + license +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                                        + Interfaces + + +

                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        MydbMysqliResultInterface
                                                                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                        +        
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        + On this page + + +
                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbmysqli.html b/php/phpdoc/files/src-sql-mydbmysqli.html new file mode 100644 index 00000000000..080ce4c4a5d --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbmysqli.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          MydbMysqli.php

                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          MIT License

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + license +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                                                                          + + + + +

                                                                                                                                                                                                                                                          + Classes + + +

                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          MydbMysqli
                                                                                                                                                                                                                                                          Facade for php mysqli extension
                                                                                                                                                                                                                                                          + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          +        
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          + On this page + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                          • Table Of Contents
                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                          • + +
                                                                                                                                                                                                                                                          • + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          Search results

                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbmysqliinterface.html b/php/phpdoc/files/src-sql-mydbmysqliinterface.html new file mode 100644 index 00000000000..2d73a56bc3d --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbmysqliinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            MydbMysqliInterface.php

                                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                                            This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                                            (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            MIT License

                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                                            + Tags + + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + license +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                                            https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + + + +

                                                                                                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                                                                                                            + + + +

                                                                                                                                                                                                                                                            + Interfaces + + +

                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            MydbMysqliInterface
                                                                                                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                            +        
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + + + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            + On this page + + +
                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            Search results

                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydboptions.html b/php/phpdoc/files/src-sql-mydboptions.html new file mode 100644 index 00000000000..dd0cf9b0b8d --- /dev/null +++ b/php/phpdoc/files/src-sql-mydboptions.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                              MydbOptions.php

                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                              This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                              (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                              MIT License

                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                              For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                                              + Tags + + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + license +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                              https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                                                                              + + + + +

                                                                                                                                                                                                                                                              + Classes + + +

                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              MydbOptions
                                                                                                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                              +        
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + + + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              + On this page + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                              • Table Of Contents
                                                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                                                              • + +
                                                                                                                                                                                                                                                              • + + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                              Search results

                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydboptionsinterface.html b/php/phpdoc/files/src-sql-mydboptionsinterface.html new file mode 100644 index 00000000000..17dbe60ffbc --- /dev/null +++ b/php/phpdoc/files/src-sql-mydboptionsinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                MydbOptionsInterface.php

                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                MIT License

                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                                + Tags + + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + license +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                                                + Interfaces + + +

                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                MydbOptionsInterface
                                                                                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                +        
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + + + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                + On this page + + +
                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbquerybuilder.html b/php/phpdoc/files/src-sql-mydbquerybuilder.html new file mode 100644 index 00000000000..008bdcb439c --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbquerybuilder.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                  MydbQueryBuilder.php

                                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                                  This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                                  (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                  MIT License

                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                  For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                                  + Tags + + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + license +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                                  https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + + + +

                                                                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                                                                  + + + + +

                                                                                                                                                                                                                                                                  + Classes + + +

                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  MydbQueryBuilder
                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                  • + +
                                                                                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbquerybuilderinterface.html b/php/phpdoc/files/src-sql-mydbquerybuilderinterface.html new file mode 100644 index 00000000000..67fa42b5dff --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbquerybuilderinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    MydbQueryBuilderInterface.php

                                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                                    This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                                    (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    MIT License

                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                    + Tags + + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + license +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                                                    https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                                                                                    + + + +

                                                                                                                                                                                                                                                                    + Interfaces + + +

                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    MydbQueryBuilderInterface
                                                                                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                    +        
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    + On this page + + +
                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbregistry.html b/php/phpdoc/files/src-sql-mydbregistry.html new file mode 100644 index 00000000000..9749757d781 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbregistry.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                      MydbRegistry.php

                                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                                      This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                                      (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                      MIT License

                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                      For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                      + Tags + + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + license +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                                      https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                                                                                      + + + + +

                                                                                                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      MydbRegistry
                                                                                                                                                                                                                                                                      Singleton or registry helper to manage multiple Mydb instances
                                                                                                                                                                                                                                                                      + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                      +        
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                                      • + +
                                                                                                                                                                                                                                                                      • + + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbrepository.html b/php/phpdoc/files/src-sql-mydbrepository.html new file mode 100644 index 00000000000..2fd906be704 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbrepository.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        MydbRepository.php

                                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                                        This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                                        (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        MIT License

                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                        + Tags + + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + license +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                                        https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                                                                                        + + + + +

                                                                                                                                                                                                                                                                        + Classes + + +

                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        MydbRepository
                                                                                                                                                                                                                                                                        + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                        +        
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        + On this page + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                        • Table Of Contents
                                                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                                                        • + +
                                                                                                                                                                                                                                                                        • + + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/files/src-sql-mydbrepositoryinterface.html b/php/phpdoc/files/src-sql-mydbrepositoryinterface.html new file mode 100644 index 00000000000..8a693e72370 --- /dev/null +++ b/php/phpdoc/files/src-sql-mydbrepositoryinterface.html @@ -0,0 +1,309 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          MydbRepositoryInterface.php

                                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                                          This file is part of the sshilko/php-sql-mydb package.

                                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                                          (c) Sergei Shilko contact@sshilko.com

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          MIT License

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          For the full copyright and license information, please view the LICENSE +file that was distributed with this source code.

                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                          + Tags + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + license +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                                                          https://opensource.org/licenses/mit-license.php MIT

                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                                                                                          + + + +

                                                                                                                                                                                                                                                                          + Interfaces + + +

                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          MydbRepositoryInterface
                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                          +        
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          + On this page + + +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          Search results

                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/graphs/classes.html b/php/phpdoc/graphs/classes.html new file mode 100644 index 00000000000..d17c5523f6f --- /dev/null +++ b/php/phpdoc/graphs/classes.html @@ -0,0 +1,132 @@ + + + + + phpDocumentor + + + + + + + + + +
                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                            Search results

                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/graphs/index.html b/php/phpdoc/graphs/index.html new file mode 100644 index 00000000000..9b7b27f2797 --- /dev/null +++ b/php/phpdoc/graphs/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              Index of /php/phpdoc/graphs

                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                              + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              ..

                                                                                                                                                                                                                                                                              .. +
                                                                                                                                                                                                                                                                              -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              classes.html

                                                                                                                                                                                                                                                                              classes.html +
                                                                                                                                                                                                                                                                              5 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                              + + generated by apindex + + +
                                                                                                                                                                                                                                                                              + + diff --git a/php/phpdoc/index.html b/php/phpdoc/index.html new file mode 100644 index 00000000000..eb138c445ed --- /dev/null +++ b/php/phpdoc/index.html @@ -0,0 +1,175 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              Documentation

                                                                                                                                                                                                                                                                              + + + +

                                                                                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                              + Packages + + +

                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              Application
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                              + Namespaces + + +

                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              sql
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                              Search results

                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/indices/files.html b/php/phpdoc/indices/files.html new file mode 100644 index 00000000000..8200ee36a00 --- /dev/null +++ b/php/phpdoc/indices/files.html @@ -0,0 +1,238 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                Files

                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                A

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                C

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                D

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                E

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                I

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                L

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                M

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                O

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                Q

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                R

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                S

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                T

                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                U

                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/indices/index.html b/php/phpdoc/indices/index.html new file mode 100644 index 00000000000..265c06e40f2 --- /dev/null +++ b/php/phpdoc/indices/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  Index of /php/phpdoc/indices

                                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                  + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  ..

                                                                                                                                                                                                                                                                                  .. +
                                                                                                                                                                                                                                                                                  -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  files.html

                                                                                                                                                                                                                                                                                  files.html +
                                                                                                                                                                                                                                                                                  20 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  + + generated by apindex + + +
                                                                                                                                                                                                                                                                                  + + diff --git a/php/phpdoc/js/index.html b/php/phpdoc/js/index.html new file mode 100644 index 00000000000..7cd9959799e --- /dev/null +++ b/php/phpdoc/js/index.html @@ -0,0 +1,70 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  Index of /php/phpdoc/js

                                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                  + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  ..

                                                                                                                                                                                                                                                                                  .. +
                                                                                                                                                                                                                                                                                  -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  search.js

                                                                                                                                                                                                                                                                                  search.js +
                                                                                                                                                                                                                                                                                  6 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  searchIndex.js

                                                                                                                                                                                                                                                                                  searchIndex.js +
                                                                                                                                                                                                                                                                                  116 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  template.js

                                                                                                                                                                                                                                                                                  template.js +
                                                                                                                                                                                                                                                                                  0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                  + + generated by apindex + + +
                                                                                                                                                                                                                                                                                  + + diff --git a/php/phpdoc/js/search.js b/php/phpdoc/js/search.js new file mode 100644 index 00000000000..093d6d03f95 --- /dev/null +++ b/php/phpdoc/js/search.js @@ -0,0 +1,173 @@ +// Search module for phpDocumentor +// +// This module is a wrapper around fuse.js that will use a given index and attach itself to a +// search form and to a search results pane identified by the following data attributes: +// +// 1. data-search-form +// 2. data-search-results +// +// The data-search-form is expected to have a single input element of type 'search' that will trigger searching for +// a series of results, were the data-search-results pane is expected to have a direct UL child that will be populated +// with rendered results. +// +// The search has various stages, upon loading this stage the data-search-form receives the CSS class +// 'phpdocumentor-search--enabled'; this indicates that JS is allowed and indices are being loaded. It is recommended +// to hide the form by default and show it when it receives this class to achieve progressive enhancement for this +// feature. +// +// After loading this module, it is expected to load a search index asynchronously, for example: +// +// +// +// In this script the generated index should attach itself to the search module using the `appendIndex` function. By +// doing it like this the page will continue loading, unhindered by the loading of the search. +// +// After the page has fully loaded, and all these deferred indexes loaded, the initialization of the search module will +// be called and the form will receive the class 'phpdocumentor-search--active', indicating search is ready. At this +// point, the input field will also have it's 'disabled' attribute removed. +var Search = (function () { + var fuse; + var index = []; + var options = { + shouldSort: true, + threshold: 0.6, + location: 0, + distance: 100, + maxPatternLength: 32, + minMatchCharLength: 1, + keys: [ + "fqsen", + "name", + "summary", + "url" + ] + }; + + // Credit David Walsh (https://davidwalsh.name/javascript-debounce-function) + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + function debounce(func, wait, immediate) { + var timeout; + + return function executedFunction() { + var context = this; + var args = arguments; + + var later = function () { + timeout = null; + if (!immediate) func.apply(context, args); + }; + + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) func.apply(context, args); + }; + } + + function close() { + // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ + const scrollY = document.body.style.top; + document.body.style.position = ''; + document.body.style.top = ''; + window.scrollTo(0, parseInt(scrollY || '0') * -1); + // End scroll prevention + + var form = document.querySelector('[data-search-form]'); + var searchResults = document.querySelector('[data-search-results]'); + + form.classList.toggle('phpdocumentor-search--has-results', false); + searchResults.classList.add('phpdocumentor-search-results--hidden'); + var searchField = document.querySelector('[data-search-form] input[type="search"]'); + searchField.blur(); + } + + function search(event) { + // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ + document.body.style.position = 'fixed'; + document.body.style.top = `-${window.scrollY}px`; + // End scroll prevention + + // prevent enter's from autosubmitting + event.stopPropagation(); + + var form = document.querySelector('[data-search-form]'); + var searchResults = document.querySelector('[data-search-results]'); + var searchResultEntries = document.querySelector('[data-search-results] .phpdocumentor-search-results__entries'); + + searchResultEntries.innerHTML = ''; + + if (!event.target.value) { + close(); + return; + } + + form.classList.toggle('phpdocumentor-search--has-results', true); + searchResults.classList.remove('phpdocumentor-search-results--hidden'); + var results = fuse.search(event.target.value, {limit: 25}); + + results.forEach(function (result) { + var entry = document.createElement("li"); + entry.classList.add("phpdocumentor-search-results__entry"); + entry.innerHTML += '

                                                                                                                                                                                                                                                                                  ' + result.name + "

                                                                                                                                                                                                                                                                                  \n"; + entry.innerHTML += '' + result.fqsen + "\n"; + entry.innerHTML += '
                                                                                                                                                                                                                                                                                  ' + result.summary + '
                                                                                                                                                                                                                                                                                  '; + searchResultEntries.appendChild(entry) + }); + } + + function appendIndex(added) { + index = index.concat(added); + + // re-initialize search engine when appending an index after initialisation + if (typeof fuse !== 'undefined') { + fuse = new Fuse(index, options); + } + } + + function init() { + fuse = new Fuse(index, options); + + var form = document.querySelector('[data-search-form]'); + var searchField = document.querySelector('[data-search-form] input[type="search"]'); + + var closeButton = document.querySelector('.phpdocumentor-search-results__close'); + closeButton.addEventListener('click', function() { close() }.bind(this)); + + var searchResults = document.querySelector('[data-search-results]'); + searchResults.addEventListener('click', function() { close() }.bind(this)); + + form.classList.add('phpdocumentor-search--active'); + + searchField.setAttribute('placeholder', 'Search (Press "/" to focus)'); + searchField.removeAttribute('disabled'); + searchField.addEventListener('keyup', debounce(search, 300)); + + window.addEventListener('keyup', function (event) { + if (event.key === '/') { + searchField.focus(); + } + if (event.code === 'Escape') { + close(); + } + }.bind(this)); + } + + return { + appendIndex, + init + } +})(); + +window.addEventListener('DOMContentLoaded', function () { + var form = document.querySelector('[data-search-form]'); + + // When JS is supported; show search box. Must be before including the search for it to take effect immediately + form.classList.add('phpdocumentor-search--enabled'); +}); + +window.addEventListener('load', function () { + Search.init(); +}); diff --git a/php/phpdoc/js/searchIndex.js b/php/phpdoc/js/searchIndex.js new file mode 100644 index 00000000000..8db0543e913 --- /dev/null +++ b/php/phpdoc/js/searchIndex.js @@ -0,0 +1,2164 @@ +Search.appendIndex( + [ + { + "fqsen": "\\sql\\Mydb", + "name": "Mydb", + "summary": "", + "url": "classes/sql-Mydb.html" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-Mydb.html#method___construct" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A__destruct\u0028\u0029", + "name": "__destruct", + "summary": "A\u0020destructor\u0020may\u0020be\u0020called\u0020as\u0020soon\u0020as\u0020there\u0020are\u0020no\u0020references\u0020to\u0020an\u0020object.", + "url": "classes/sql-Mydb.html#method___destruct" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aopen\u0028\u0029", + "name": "open", + "summary": "Open\u0020connection\u0020to\u0020remote\u0020server", + "url": "classes/sql-Mydb.html#method_open" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aquery\u0028\u0029", + "name": "query", + "summary": "Execute\u0020raw\u0020SQL\u0020query\u0020and\u0020return\u0020results", + "url": "classes/sql-Mydb.html#method_query" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Acommand\u0028\u0029", + "name": "command", + "summary": "", + "url": "classes/sql-Mydb.html#method_command" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AgetEnumValues\u0028\u0029", + "name": "getEnumValues", + "summary": "", + "url": "classes/sql-Mydb.html#method_getEnumValues" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aescape\u0028\u0029", + "name": "escape", + "summary": "", + "url": "classes/sql-Mydb.html#method_escape" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AgetPrimaryKeys\u0028\u0029", + "name": "getPrimaryKeys", + "summary": "", + "url": "classes/sql-Mydb.html#method_getPrimaryKeys" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AbeginTransaction\u0028\u0029", + "name": "beginTransaction", + "summary": "", + "url": "classes/sql-Mydb.html#method_beginTransaction" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003ArollbackTransaction\u0028\u0029", + "name": "rollbackTransaction", + "summary": "", + "url": "classes/sql-Mydb.html#method_rollbackTransaction" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AcommitTransaction\u0028\u0029", + "name": "commitTransaction", + "summary": "", + "url": "classes/sql-Mydb.html#method_commitTransaction" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aclose\u0028\u0029", + "name": "close", + "summary": "Cleanup\u0020remote\u0020server\u0020connection\nwill\u0020NOT\u0020close\u0020persistent\u0020connections", + "url": "classes/sql-Mydb.html#method_close" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Areplace\u0028\u0029", + "name": "replace", + "summary": "", + "url": "classes/sql-Mydb.html#method_replace" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Ainsert\u0028\u0029", + "name": "insert", + "summary": "", + "url": "classes/sql-Mydb.html#method_insert" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aselect\u0028\u0029", + "name": "select", + "summary": "", + "url": "classes/sql-Mydb.html#method_select" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Adelete\u0028\u0029", + "name": "delete", + "summary": "", + "url": "classes/sql-Mydb.html#method_delete" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aupdate\u0028\u0029", + "name": "update", + "summary": "", + "url": "classes/sql-Mydb.html#method_update" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AdeleteWhere\u0028\u0029", + "name": "deleteWhere", + "summary": "", + "url": "classes/sql-Mydb.html#method_deleteWhere" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AupdateWhere\u0028\u0029", + "name": "updateWhere", + "summary": "", + "url": "classes/sql-Mydb.html#method_updateWhere" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AupdateWhereMany\u0028\u0029", + "name": "updateWhereMany", + "summary": "", + "url": "classes/sql-Mydb.html#method_updateWhereMany" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AinsertMany\u0028\u0029", + "name": "insertMany", + "summary": "", + "url": "classes/sql-Mydb.html#method_insertMany" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AreplaceOne\u0028\u0029", + "name": "replaceOne", + "summary": "", + "url": "classes/sql-Mydb.html#method_replaceOne" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AinsertOne\u0028\u0029", + "name": "insertOne", + "summary": "", + "url": "classes/sql-Mydb.html#method_insertOne" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AsendClientRequest\u0028\u0029", + "name": "sendClientRequest", + "summary": "", + "url": "classes/sql-Mydb.html#method_sendClientRequest" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AreadServerResponse\u0028\u0029", + "name": "readServerResponse", + "summary": "", + "url": "classes/sql-Mydb.html#method_readServerResponse" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AonWarning\u0028\u0029", + "name": "onWarning", + "summary": "", + "url": "classes/sql-Mydb.html#method_onWarning" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003AonError\u0028\u0029", + "name": "onError", + "summary": "", + "url": "classes/sql-Mydb.html#method_onError" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003Aconnect\u0028\u0029", + "name": "connect", + "summary": "", + "url": "classes/sql-Mydb.html#method_connect" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024mysqli", + "name": "mysqli", + "summary": "", + "url": "classes/sql-Mydb.html#property_mysqli" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024options", + "name": "options", + "summary": "", + "url": "classes/sql-Mydb.html#property_options" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024environment", + "name": "environment", + "summary": "", + "url": "classes/sql-Mydb.html#property_environment" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024queryBuilder", + "name": "queryBuilder", + "summary": "", + "url": "classes/sql-Mydb.html#property_queryBuilder" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024eventListener", + "name": "eventListener", + "summary": "", + "url": "classes/sql-Mydb.html#property_eventListener" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024terminating", + "name": "terminating", + "summary": "", + "url": "classes/sql-Mydb.html#property_terminating" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024credentials", + "name": "credentials", + "summary": "", + "url": "classes/sql-Mydb.html#property_credentials" + }, { + "fqsen": "\\sql\\Mydb\u003A\u003A\u0024logger", + "name": "logger", + "summary": "", + "url": "classes/sql-Mydb.html#property_logger" + }, { + "fqsen": "\\sql\\MydbCredentials", + "name": "MydbCredentials", + "summary": "", + "url": "classes/sql-MydbCredentials.html" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method___construct" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetHost\u0028\u0029", + "name": "getHost", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getHost" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetUsername\u0028\u0029", + "name": "getUsername", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getUsername" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetPasswd\u0028\u0029", + "name": "getPasswd", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getPasswd" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetDbname\u0028\u0029", + "name": "getDbname", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getDbname" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetPort\u0028\u0029", + "name": "getPort", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getPort" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetSocket\u0028\u0029", + "name": "getSocket", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getSocket" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003AgetFlags\u0028\u0029", + "name": "getFlags", + "summary": "", + "url": "classes/sql-MydbCredentials.html#method_getFlags" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024host", + "name": "host", + "summary": "Database\u0020credentials\u0020\u002D\u0020hostname\nCan\u0020be\u0020either\u0020a\u0020host\u0020name\u0020or\u0020an\u0020IP\u0020address.\u0020Passing\u0020the\u0020null\u0020value\u0020or\u0020the\u0020string\u0020\u0022localhost\u0022\u0020to\u0020this\u0020parameter,\nthe\u0020local\u0020host\u0020is\u0020assumed.\u0020When\u0020possible,\u0020pipes\u0020will\u0020be\u0020used\u0020instead\u0020of\u0020the\u0020TCP\/IP\u0020protocol.", + "url": "classes/sql-MydbCredentials.html#property_host" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024username", + "name": "username", + "summary": "Database\u0020credentials\u0020\u002D\u0020username", + "url": "classes/sql-MydbCredentials.html#property_username" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024passwd", + "name": "passwd", + "summary": "Database\u0020credentials\u0020\u002D\u0020password\nIf\u0020provided\u0020or\u0020null,\u0020the\u0020MySQL\u0020server\u0020will\u0020attempt\u0020to\u0020authenticate\u0020the\u0020user\u0020against\u0020those\u0020user\u0020records\nwhich\u0020have\u0020no\u0020password\u0020only.\u0020This\u0020allows\u0020one\u0020username\u0020to\u0020be\u0020used\u0020with\u0020different\u0020permissions\n\u0028depending\u0020on\u0020if\u0020a\u0020password\u0020as\u0020provided\u0020or\u0020not\u0029.", + "url": "classes/sql-MydbCredentials.html#property_passwd" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024dbname", + "name": "dbname", + "summary": "Database\u0020credentials\u0020\u002D\u0020database\u0020name\nIf\u0020provided\u0020will\u0020specify\u0020the\u0020default\u0020database\u0020to\u0020be\u0020used\u0020when\u0020performing\u0020queries.", + "url": "classes/sql-MydbCredentials.html#property_dbname" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024port", + "name": "port", + "summary": "Database\u0020credentials\u0020\u002D\u0020port\nSpecifies\u0020the\u0020port\u0020number\u0020to\u0020attempt\u0020to\u0020connect\u0020to\u0020the\u0020MySQL\u0020server.", + "url": "classes/sql-MydbCredentials.html#property_port" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024socket", + "name": "socket", + "summary": "Database\u0020credentials\u0020\u002D\u0020socket\nSpecifies\u0020the\u0020socket\u0020or\u0020named\u0020pipe\u0020that\u0020should\u0020be\u0020used.", + "url": "classes/sql-MydbCredentials.html#property_socket" + }, { + "fqsen": "\\sql\\MydbCredentials\u003A\u003A\u0024flags", + "name": "flags", + "summary": "Database\u0020credentials\u0020\u002D\u0020connection\u0020flags\nWith\u0020the\u0020parameter\u0020flags\u0020you\u0020can\u0020set\u0020different\u0020connection\u0020options\nMYSQLI_CLIENT_COMPRESS\u0020\u002D\u0020Use\u0020compression\u0020protocol\nMYSQLI_CLIENT_SSL\u0020\u002D\u0020Use\u0020SSL\u0020\u0028encryption\u0029\nMULTI_STATEMENT\u0020flag\u0020is\u0020not\u0020supported\u0020in\u0020PHP", + "url": "classes/sql-MydbCredentials.html#property_flags" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface", + "name": "MydbCredentialsInterface", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetHost\u0028\u0029", + "name": "getHost", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getHost" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetUsername\u0028\u0029", + "name": "getUsername", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getUsername" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetPasswd\u0028\u0029", + "name": "getPasswd", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getPasswd" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetDbname\u0028\u0029", + "name": "getDbname", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getDbname" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetPort\u0028\u0029", + "name": "getPort", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getPort" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetSocket\u0028\u0029", + "name": "getSocket", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getSocket" + }, { + "fqsen": "\\sql\\MydbCredentialsInterface\u003A\u003AgetFlags\u0028\u0029", + "name": "getFlags", + "summary": "", + "url": "classes/sql-MydbCredentialsInterface.html#method_getFlags" + }, { + "fqsen": "\\sql\\MydbEnvironment", + "name": "MydbEnvironment", + "summary": "", + "url": "classes/sql-MydbEnvironment.html" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Agc_collect_cycles\u0028\u0029", + "name": "gc_collect_cycles", + "summary": "", + "url": "classes/sql-MydbEnvironment.html#method_gc_collect_cycles" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Arestore_error_handler\u0028\u0029", + "name": "restore_error_handler", + "summary": "Restore\u0020previous\u0020PHP\u0020error\u0020handler", + "url": "classes/sql-MydbEnvironment.html#method_restore_error_handler" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Aset_error_handler\u0028\u0029", + "name": "set_error_handler", + "summary": "Set\u0020custom\u0020PHP\u0020error\u0020handler", + "url": "classes/sql-MydbEnvironment.html#method_set_error_handler" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003AsetMysqlndNetReadTimeout\u0028\u0029", + "name": "setMysqlndNetReadTimeout", + "summary": "Set\u0020mysqlnd.net_read_timeout\u0020php\u0020ini\u0020value", + "url": "classes/sql-MydbEnvironment.html#method_setMysqlndNetReadTimeout" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Aerror_reporting\u0028\u0029", + "name": "error_reporting", + "summary": "Sets\u0020which\u0020PHP\u0020errors\u0020are\u0020reported", + "url": "classes/sql-MydbEnvironment.html#method_error_reporting" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Aignore_user_abort\u0028\u0029", + "name": "ignore_user_abort", + "summary": "Set\u0020whether\u0020a\u0020client\u0020disconnect\u0020should\u0020abort\u0020script\u0020execution\u0020\u0028does\u0020not\u0020affect\u0020CLI\u0029", + "url": "classes/sql-MydbEnvironment.html#method_ignore_user_abort" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003Aini_set\u0028\u0029", + "name": "ini_set", + "summary": "Sets\u0020the\u0020value\u0020of\u0020a\u0020configuration\u0020option", + "url": "classes/sql-MydbEnvironment.html#method_ini_set" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003AendSignalsTrap\u0028\u0029", + "name": "endSignalsTrap", + "summary": "Disable\u0020custom\u0020signal\u0020handler", + "url": "classes/sql-MydbEnvironment.html#method_endSignalsTrap" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003AstartSignalsTrap\u0028\u0029", + "name": "startSignalsTrap", + "summary": "Enable\u0020custom\u0020signal\u0020handler", + "url": "classes/sql-MydbEnvironment.html#method_startSignalsTrap" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003AgetNullErrorHandler\u0028\u0029", + "name": "getNullErrorHandler", + "summary": "Error\u0020handler\u0020that\u0020does\u0020nothing\u0020and\u0020does\u0020not\u0020chain", + "url": "classes/sql-MydbEnvironment.html#method_getNullErrorHandler" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003A\u0024knownSignals", + "name": "knownSignals", + "summary": "", + "url": "classes/sql-MydbEnvironment.html#property_knownSignals" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003A\u0024trappedSignals", + "name": "trappedSignals", + "summary": "Any\u0020signals\u0020that\u0020were\u0020trapped\u0020during\u0020custom\u0020signal\u0020handler", + "url": "classes/sql-MydbEnvironment.html#property_trappedSignals" + }, { + "fqsen": "\\sql\\MydbEnvironment\u003A\u003A\u0024trappedHandlers", + "name": "trappedHandlers", + "summary": "Backup\u0020of\u0020signal\u0020handlers\nOriginal\u0020signal\u0020handler,\u0020which\u0020replaced\u0020by\u0020custon\u0020trap", + "url": "classes/sql-MydbEnvironment.html#property_trappedHandlers" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface", + "name": "MydbEnvironmentInterface", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Agc_collect_cycles\u0028\u0029", + "name": "gc_collect_cycles", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_gc_collect_cycles" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Arestore_error_handler\u0028\u0029", + "name": "restore_error_handler", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_restore_error_handler" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Aset_error_handler\u0028\u0029", + "name": "set_error_handler", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_set_error_handler" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003AsetMysqlndNetReadTimeout\u0028\u0029", + "name": "setMysqlndNetReadTimeout", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_setMysqlndNetReadTimeout" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Aerror_reporting\u0028\u0029", + "name": "error_reporting", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_error_reporting" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Aignore_user_abort\u0028\u0029", + "name": "ignore_user_abort", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_ignore_user_abort" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003Aini_set\u0028\u0029", + "name": "ini_set", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_ini_set" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003AendSignalsTrap\u0028\u0029", + "name": "endSignalsTrap", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_endSignalsTrap" + }, { + "fqsen": "\\sql\\MydbEnvironmentInterface\u003A\u003AstartSignalsTrap\u0028\u0029", + "name": "startSignalsTrap", + "summary": "", + "url": "classes/sql-MydbEnvironmentInterface.html#method_startSignalsTrap" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalConnectionBegin", + "name": "InternalConnectionBegin", + "summary": "", + "url": "classes/sql-MydbEvent-InternalConnectionBegin.html" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalConnectionBegin\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbEvent-InternalConnectionBegin.html#method___construct" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalConnectionEnd", + "name": "InternalConnectionEnd", + "summary": "", + "url": "classes/sql-MydbEvent-InternalConnectionEnd.html" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalConnectionEnd\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbEvent-InternalConnectionEnd.html#method___construct" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent", + "name": "InternalEvent", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent\u003A\u003AgetEventMetadata\u0028\u0029", + "name": "getEventMetadata", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html#method_getEventMetadata" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent\u003A\u003AsetListeners\u0028\u0029", + "name": "setListeners", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html#method_setListeners" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent\u003A\u003AgetListeners\u0028\u0029", + "name": "getListeners", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html#method_getListeners" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent\u003A\u003A\u0024listeners", + "name": "listeners", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html#property_listeners" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalEvent\u003A\u003A\u0024data", + "name": "data", + "summary": "", + "url": "classes/sql-MydbEvent-InternalEvent.html#property_data" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalQueryBegin", + "name": "InternalQueryBegin", + "summary": "", + "url": "classes/sql-MydbEvent-InternalQueryBegin.html" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalQueryBegin\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbEvent-InternalQueryBegin.html#method___construct" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalQueryEnd", + "name": "InternalQueryEnd", + "summary": "", + "url": "classes/sql-MydbEvent-InternalQueryEnd.html" + }, { + "fqsen": "\\sql\\MydbEvent\\InternalQueryEnd\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbEvent-InternalQueryEnd.html#method___construct" + }, { + "fqsen": "\\sql\\MydbEvent", + "name": "MydbEvent", + "summary": "", + "url": "classes/sql-MydbEvent.html" + }, { + "fqsen": "\\sql\\MydbEvent\u003A\u003AgetEventMetadata\u0028\u0029", + "name": "getEventMetadata", + "summary": "", + "url": "classes/sql-MydbEvent.html#method_getEventMetadata" + }, { + "fqsen": "\\sql\\MydbEvent\u003A\u003AgetListeners\u0028\u0029", + "name": "getListeners", + "summary": "", + "url": "classes/sql-MydbEvent.html#method_getListeners" + }, { + "fqsen": "\\sql\\MydbEvent\u003A\u003Anotify\u0028\u0029", + "name": "notify", + "summary": "", + "url": "classes/sql-MydbEvent.html#method_notify" + }, { + "fqsen": "\\sql\\MydbEvent\u003A\u003AgetEventName\u0028\u0029", + "name": "getEventName", + "summary": "", + "url": "classes/sql-MydbEvent.html#method_getEventName" + }, { + "fqsen": "\\sql\\MydbEventInterface", + "name": "MydbEventInterface", + "summary": "", + "url": "classes/sql-MydbEventInterface.html" + }, { + "fqsen": "\\sql\\MydbEventInterface\u003A\u003Anotify\u0028\u0029", + "name": "notify", + "summary": "", + "url": "classes/sql-MydbEventInterface.html#method_notify" + }, { + "fqsen": "\\sql\\MydbEventMetadataInterface", + "name": "MydbEventMetadataInterface", + "summary": "", + "url": "classes/sql-MydbEventMetadataInterface.html" + }, { + "fqsen": "\\sql\\MydbEventMetadataInterface\u003A\u003AgetEventMetadata\u0028\u0029", + "name": "getEventMetadata", + "summary": "", + "url": "classes/sql-MydbEventMetadataInterface.html#method_getEventMetadata" + }, { + "fqsen": "\\sql\\MydbEventMetadataInterface\u003A\u003AgetEventName\u0028\u0029", + "name": "getEventName", + "summary": "", + "url": "classes/sql-MydbEventMetadataInterface.html#method_getEventName" + }, { + "fqsen": "\\sql\\MydbException\\ConnectDefaultsException", + "name": "ConnectDefaultsException", + "summary": "", + "url": "classes/sql-MydbException-ConnectDefaultsException.html" + }, { + "fqsen": "\\sql\\MydbException\\ConnectException", + "name": "ConnectException", + "summary": "", + "url": "classes/sql-MydbException-ConnectException.html" + }, { + "fqsen": "\\sql\\MydbException\\DeleteException", + "name": "DeleteException", + "summary": "", + "url": "classes/sql-MydbException-DeleteException.html" + }, { + "fqsen": "\\sql\\MydbException\\DisconnectException", + "name": "DisconnectException", + "summary": "", + "url": "classes/sql-MydbException-DisconnectException.html" + }, { + "fqsen": "\\sql\\MydbException\\EnvironmentException", + "name": "EnvironmentException", + "summary": "", + "url": "classes/sql-MydbException-EnvironmentException.html" + }, { + "fqsen": "\\sql\\MydbException\\EventException", + "name": "EventException", + "summary": "", + "url": "classes/sql-MydbException-EventException.html" + }, { + "fqsen": "\\sql\\MydbException\\InternalException", + "name": "InternalException", + "summary": "", + "url": "classes/sql-MydbException-InternalException.html" + }, { + "fqsen": "\\sql\\MydbException\\LoggerException", + "name": "LoggerException", + "summary": "", + "url": "classes/sql-MydbException-LoggerException.html" + }, { + "fqsen": "\\sql\\MydbException\\OptionException", + "name": "OptionException", + "summary": "", + "url": "classes/sql-MydbException-OptionException.html" + }, { + "fqsen": "\\sql\\MydbException\\QueryBuilderEscapeException", + "name": "QueryBuilderEscapeException", + "summary": "", + "url": "classes/sql-MydbException-QueryBuilderEscapeException.html" + }, { + "fqsen": "\\sql\\MydbException\\QueryBuilderEscapeException\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbException-QueryBuilderEscapeException.html#method___construct" + }, { + "fqsen": "\\sql\\MydbException\\QueryBuilderEscapeException\u003A\u003AMESSAGE_TEMPLATE", + "name": "MESSAGE_TEMPLATE", + "summary": "", + "url": "classes/sql-MydbException-QueryBuilderEscapeException.html#constant_MESSAGE_TEMPLATE" + }, { + "fqsen": "\\sql\\MydbException\\QueryBuilderException", + "name": "QueryBuilderException", + "summary": "", + "url": "classes/sql-MydbException-QueryBuilderException.html" + }, { + "fqsen": "\\sql\\MydbException\\RegistryException", + "name": "RegistryException", + "summary": "", + "url": "classes/sql-MydbException-RegistryException.html" + }, { + "fqsen": "\\sql\\MydbException\\ServerGoneException", + "name": "ServerGoneException", + "summary": "", + "url": "classes/sql-MydbException-ServerGoneException.html" + }, { + "fqsen": "\\sql\\MydbException\\TerminationSignalException", + "name": "TerminationSignalException", + "summary": "", + "url": "classes/sql-MydbException-TerminationSignalException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionAutocommitException", + "name": "TransactionAutocommitException", + "summary": "", + "url": "classes/sql-MydbException-TransactionAutocommitException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionBeginException", + "name": "TransactionBeginException", + "summary": "", + "url": "classes/sql-MydbException-TransactionBeginException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionBeginReadonlyException", + "name": "TransactionBeginReadonlyException", + "summary": "", + "url": "classes/sql-MydbException-TransactionBeginReadonlyException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionBeginReadwriteException", + "name": "TransactionBeginReadwriteException", + "summary": "", + "url": "classes/sql-MydbException-TransactionBeginReadwriteException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionCommitException", + "name": "TransactionCommitException", + "summary": "", + "url": "classes/sql-MydbException-TransactionCommitException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionIsolationException", + "name": "TransactionIsolationException", + "summary": "", + "url": "classes/sql-MydbException-TransactionIsolationException.html" + }, { + "fqsen": "\\sql\\MydbException\\TransactionRollbackException", + "name": "TransactionRollbackException", + "summary": "", + "url": "classes/sql-MydbException-TransactionRollbackException.html" + }, { + "fqsen": "\\sql\\MydbException\\UpdateException", + "name": "UpdateException", + "summary": "", + "url": "classes/sql-MydbException-UpdateException.html" + }, { + "fqsen": "\\sql\\MydbException", + "name": "MydbException", + "summary": "", + "url": "classes/sql-MydbException.html" + }, { + "fqsen": "\\sql\\MydbExpression", + "name": "MydbExpression", + "summary": "", + "url": "classes/sql-MydbExpression.html" + }, { + "fqsen": "\\sql\\MydbExpression\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbExpression.html#method___construct" + }, { + "fqsen": "\\sql\\MydbExpression\u003A\u003A__toString\u0028\u0029", + "name": "__toString", + "summary": "As\u0020of\u0020PHP8.0\u0020this\u0020is\u0020Stringable\u0020interface", + "url": "classes/sql-MydbExpression.html#method___toString" + }, { + "fqsen": "\\sql\\MydbExpression\u003A\u003A\u0024input", + "name": "input", + "summary": "", + "url": "classes/sql-MydbExpression.html#property_input" + }, { + "fqsen": "\\sql\\MydbExpressionInterface", + "name": "MydbExpressionInterface", + "summary": "", + "url": "classes/sql-MydbExpressionInterface.html" + }, { + "fqsen": "\\sql\\MydbExpressionInterface\u003A\u003A__toString\u0028\u0029", + "name": "__toString", + "summary": "As\u0020of\u0020PHP8.0\u0020this\u0020is\u0020Stringable\u0020interface", + "url": "classes/sql-MydbExpressionInterface.html#method___toString" + }, { + "fqsen": "\\sql\\MydbInterface\\AdministrationStatementsInterface", + "name": "AdministrationStatementsInterface", + "summary": "", + "url": "classes/sql-MydbInterface-AdministrationStatementsInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\AdministrationStatementsInterface\u003A\u003AgetPrimaryKeys\u0028\u0029", + "name": "getPrimaryKeys", + "summary": "Get\u0020table\u0020primary\u0020keys", + "url": "classes/sql-MydbInterface-AdministrationStatementsInterface.html#method_getPrimaryKeys" + }, { + "fqsen": "\\sql\\MydbInterface\\AdministrationStatementsInterface\u003A\u003AgetEnumValues\u0028\u0029", + "name": "getEnumValues", + "summary": "", + "url": "classes/sql-MydbInterface-AdministrationStatementsInterface.html#method_getEnumValues" + }, { + "fqsen": "\\sql\\MydbInterface\\CommandInterface", + "name": "CommandInterface", + "summary": "", + "url": "classes/sql-MydbInterface-CommandInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\CommandInterface\u003A\u003Acommand\u0028\u0029", + "name": "command", + "summary": "Execute\u0020any\u0020SQL\u0020command,\u0020without\u0020returning\u0020result", + "url": "classes/sql-MydbInterface-CommandInterface.html#method_command" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface", + "name": "DataManipulationStatementsInterface", + "summary": "These\u0020statements\u0020do\u0020not\u0020implicitly\u0020commit\u0020the\u0020current\u0020transaction.", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AupdateWhere\u0028\u0029", + "name": "updateWhere", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_updateWhere" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AdeleteWhere\u0028\u0029", + "name": "deleteWhere", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_deleteWhere" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AupdateWhereMany\u0028\u0029", + "name": "updateWhereMany", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_updateWhereMany" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AinsertMany\u0028\u0029", + "name": "insertMany", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_insertMany" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AinsertOne\u0028\u0029", + "name": "insertOne", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_insertOne" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003AreplaceOne\u0028\u0029", + "name": "replaceOne", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_replaceOne" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003Aselect\u0028\u0029", + "name": "select", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_select" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003Ainsert\u0028\u0029", + "name": "insert", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_insert" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003Aupdate\u0028\u0029", + "name": "update", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_update" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003Adelete\u0028\u0029", + "name": "delete", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_delete" + }, { + "fqsen": "\\sql\\MydbInterface\\DataManipulationStatementsInterface\u003A\u003Areplace\u0028\u0029", + "name": "replace", + "summary": "", + "url": "classes/sql-MydbInterface-DataManipulationStatementsInterface.html#method_replace" + }, { + "fqsen": "\\sql\\MydbInterface\\EncoderInterface", + "name": "EncoderInterface", + "summary": "", + "url": "classes/sql-MydbInterface-EncoderInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\EncoderInterface\u003A\u003Aescape\u0028\u0029", + "name": "escape", + "summary": "Escape\u0020value\u0020for\u0020the\u0020SQL\u0020query", + "url": "classes/sql-MydbInterface-EncoderInterface.html#method_escape" + }, { + "fqsen": "\\sql\\MydbInterface\\QueryInterface", + "name": "QueryInterface", + "summary": "", + "url": "classes/sql-MydbInterface-QueryInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\QueryInterface\u003A\u003Aquery\u0028\u0029", + "name": "query", + "summary": "", + "url": "classes/sql-MydbInterface-QueryInterface.html#method_query" + }, { + "fqsen": "\\sql\\MydbInterface\\RemoteResourceInterface", + "name": "RemoteResourceInterface", + "summary": "", + "url": "classes/sql-MydbInterface-RemoteResourceInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\RemoteResourceInterface\u003A\u003Aopen\u0028\u0029", + "name": "open", + "summary": "Open\u0020remote\u0020server\u0020connection", + "url": "classes/sql-MydbInterface-RemoteResourceInterface.html#method_open" + }, { + "fqsen": "\\sql\\MydbInterface\\RemoteResourceInterface\u003A\u003Aclose\u0028\u0029", + "name": "close", + "summary": "Cleanup\u0020remote\u0020server\u0020connection\nwill\u0020NOT\u0020close\u0020persistent\u0020connections", + "url": "classes/sql-MydbInterface-RemoteResourceInterface.html#method_close" + }, { + "fqsen": "\\sql\\MydbInterface\\TransactionInterface", + "name": "TransactionInterface", + "summary": "", + "url": "classes/sql-MydbInterface-TransactionInterface.html" + }, { + "fqsen": "\\sql\\MydbInterface\\TransactionInterface\u003A\u003AbeginTransaction\u0028\u0029", + "name": "beginTransaction", + "summary": "", + "url": "classes/sql-MydbInterface-TransactionInterface.html#method_beginTransaction" + }, { + "fqsen": "\\sql\\MydbInterface\\TransactionInterface\u003A\u003AcommitTransaction\u0028\u0029", + "name": "commitTransaction", + "summary": "", + "url": "classes/sql-MydbInterface-TransactionInterface.html#method_commitTransaction" + }, { + "fqsen": "\\sql\\MydbInterface\\TransactionInterface\u003A\u003ArollbackTransaction\u0028\u0029", + "name": "rollbackTransaction", + "summary": "", + "url": "classes/sql-MydbInterface-TransactionInterface.html#method_rollbackTransaction" + }, { + "fqsen": "\\sql\\MydbInterface", + "name": "MydbInterface", + "summary": "", + "url": "classes/sql-MydbInterface.html" + }, { + "fqsen": "\\sql\\MydbListener\\InternalListener", + "name": "InternalListener", + "summary": "", + "url": "classes/sql-MydbListener-InternalListener.html" + }, { + "fqsen": "\\sql\\MydbListener\\InternalListener\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbListener-InternalListener.html#method___construct" + }, { + "fqsen": "\\sql\\MydbListener\\InternalListener\u003A\u003AonEvent\u0028\u0029", + "name": "onEvent", + "summary": "", + "url": "classes/sql-MydbListener-InternalListener.html#method_onEvent" + }, { + "fqsen": "\\sql\\MydbListener\\InternalListener\u003A\u003A\u0024logger", + "name": "logger", + "summary": "", + "url": "classes/sql-MydbListener-InternalListener.html#property_logger" + }, { + "fqsen": "\\sql\\MydbListener", + "name": "MydbListener", + "summary": "", + "url": "classes/sql-MydbListener.html" + }, { + "fqsen": "\\sql\\MydbListener\u003A\u003AonEvent\u0028\u0029", + "name": "onEvent", + "summary": "", + "url": "classes/sql-MydbListener.html#method_onEvent" + }, { + "fqsen": "\\sql\\MydbListener\u003A\u003Aobserve\u0028\u0029", + "name": "observe", + "summary": "", + "url": "classes/sql-MydbListener.html#method_observe" + }, { + "fqsen": "\\sql\\MydbListenerInterface", + "name": "MydbListenerInterface", + "summary": "", + "url": "classes/sql-MydbListenerInterface.html" + }, { + "fqsen": "\\sql\\MydbListenerInterface\u003A\u003Aobserve\u0028\u0029", + "name": "observe", + "summary": "", + "url": "classes/sql-MydbListenerInterface.html#method_observe" + }, { + "fqsen": "\\sql\\MydbLogger", + "name": "MydbLogger", + "summary": "Implementation\u0020of\u0020PSR\u002D3\u0020Logger\u0020that\u0020will\u0020output\u0020to\u0020STDERR\u0020\u0026\u0020STDOUT", + "url": "classes/sql-MydbLogger.html" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbLogger.html#method___construct" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003A__destruct\u0028\u0029", + "name": "__destruct", + "summary": "", + "url": "classes/sql-MydbLogger.html#method___destruct" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Aerror\u0028\u0029", + "name": "error", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_error" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Alog\u0028\u0029", + "name": "log", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_log" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Awarning\u0028\u0029", + "name": "warning", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_warning" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Aemergency\u0028\u0029", + "name": "emergency", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_emergency" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Aalert\u0028\u0029", + "name": "alert", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_alert" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Acritical\u0028\u0029", + "name": "critical", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_critical" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Anotice\u0028\u0029", + "name": "notice", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_notice" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Ainfo\u0028\u0029", + "name": "info", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_info" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Adebug\u0028\u0029", + "name": "debug", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_debug" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003AcheckStreamResource\u0028\u0029", + "name": "checkStreamResource", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_checkStreamResource" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003AwriteOutput\u0028\u0029", + "name": "writeOutput", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_writeOutput" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Afwrite\u0028\u0029", + "name": "fwrite", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_fwrite" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003Aformatter\u0028\u0029", + "name": "formatter", + "summary": "", + "url": "classes/sql-MydbLogger.html#method_formatter" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003AIO_WRITE_ATTEMPTS", + "name": "IO_WRITE_ATTEMPTS", + "summary": "", + "url": "classes/sql-MydbLogger.html#constant_IO_WRITE_ATTEMPTS" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003A\u0024stdout", + "name": "stdout", + "summary": "Opened\u0020resource,\u0020STDOUT", + "url": "classes/sql-MydbLogger.html#property_stdout" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003A\u0024stderr", + "name": "stderr", + "summary": "Opened\u0020resource,\u0020STDERR", + "url": "classes/sql-MydbLogger.html#property_stderr" + }, { + "fqsen": "\\sql\\MydbLogger\u003A\u003A\u0024stdeol", + "name": "stdeol", + "summary": "End\u0020of\u0020line\u0020delimiter", + "url": "classes/sql-MydbLogger.html#property_stdeol" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliEscapeStringInterface", + "name": "MydbMysqliEscapeStringInterface", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliEscapeStringInterface.html" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliEscapeStringInterface\u003A\u003ArealEscapeString\u0028\u0029", + "name": "realEscapeString", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliEscapeStringInterface.html#method_realEscapeString" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult", + "name": "MydbMysqliResult", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method___construct" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AgetFieldCount\u0028\u0029", + "name": "getFieldCount", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_getFieldCount" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AgetWarnings\u0028\u0029", + "name": "getWarnings", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_getWarnings" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AsetErrorMessage\u0028\u0029", + "name": "setErrorMessage", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_setErrorMessage" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AsetErrorNumber\u0028\u0029", + "name": "setErrorNumber", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_setErrorNumber" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AgetError\u0028\u0029", + "name": "getError", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_getError" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AgetResult\u0028\u0029", + "name": "getResult", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#method_getResult" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003AMYSQLI_ASSOC", + "name": "MYSQLI_ASSOC", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#constant_MYSQLI_ASSOC" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A\u0024result", + "name": "result", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#property_result" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A\u0024warnings", + "name": "warnings", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#property_warnings" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A\u0024errorMessage", + "name": "errorMessage", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#property_errorMessage" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A\u0024errorNumber", + "name": "errorNumber", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#property_errorNumber" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResult\u003A\u003A\u0024fieldsCount", + "name": "fieldsCount", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResult.html#property_fieldsCount" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface", + "name": "MydbMysqliResultInterface", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method___construct" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AgetFieldCount\u0028\u0029", + "name": "getFieldCount", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_getFieldCount" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AgetWarnings\u0028\u0029", + "name": "getWarnings", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_getWarnings" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AsetErrorMessage\u0028\u0029", + "name": "setErrorMessage", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_setErrorMessage" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AsetErrorNumber\u0028\u0029", + "name": "setErrorNumber", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_setErrorNumber" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AgetError\u0028\u0029", + "name": "getError", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_getError" + }, { + "fqsen": "\\sql\\MydbMysqli\\MydbMysqliResultInterface\u003A\u003AgetResult\u0028\u0029", + "name": "getResult", + "summary": "", + "url": "classes/sql-MydbMysqli-MydbMysqliResultInterface.html#method_getResult" + }, { + "fqsen": "\\sql\\MydbMysqli", + "name": "MydbMysqli", + "summary": "Facade\u0020for\u0020php\u0020mysqli\u0020extension", + "url": "classes/sql-MydbMysqli.html" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method___construct" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003Ainit\u0028\u0029", + "name": "init", + "summary": "Allocate\u0020mysqli\u0020resource\u0020instance,\u0020no\u0020physical\u0020connection\u0020to\u0020remote\u0020is\u0020done", + "url": "classes/sql-MydbMysqli.html#method_init" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AsetTransportOptions\u0028\u0029", + "name": "setTransportOptions", + "summary": "Set\u0020various\u0020options\u0020that\u0020affect\u0020mysqli\u0020resource,\u0020before\u0020connection\u0020is\u0020established", + "url": "classes/sql-MydbMysqli.html#method_setTransportOptions" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AsetTransactionIsolationLevel\u0028\u0029", + "name": "setTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_setTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AisTransactionOpen\u0028\u0029", + "name": "isTransactionOpen", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_isTransactionOpen" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003A\u0024isConnected", + "name": "isConnected", + "summary": "Flag\u0020indicating\u0020whether\u0020physical\u0020connection\u0020was\u0020established\u0020with\u0020remote\u0020server\nIs\u0020connected\u0020to\u0020remove\u0020server", + "url": "classes/sql-MydbMysqli.html#property_isConnected" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetMysqli\u0028\u0029", + "name": "getMysqli", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getMysqli" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003ArealQuery\u0028\u0029", + "name": "realQuery", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_realQuery" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AreadServerResponse\u0028\u0029", + "name": "readServerResponse", + "summary": "React\u0020to\u0020mysqli\u0020resource\u0020changes\u0020after\u0020query\/command\u0020execution", + "url": "classes/sql-MydbMysqli.html#method_readServerResponse" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003ArealEscapeString\u0028\u0029", + "name": "realEscapeString", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_realEscapeString" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AbeginTransactionReadwrite\u0028\u0029", + "name": "beginTransactionReadwrite", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_beginTransactionReadwrite" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AbeginTransactionReadonly\u0028\u0029", + "name": "beginTransactionReadonly", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_beginTransactionReadonly" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003Arollback\u0028\u0029", + "name": "rollback", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_rollback" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AcommitAndRelease\u0028\u0029", + "name": "commitAndRelease", + "summary": "Commit\u0020transaction\u0020and\u0020release\u0020connection\u0020from\u0020server\u0020side", + "url": "classes/sql-MydbMysqli.html#method_commitAndRelease" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003Acommit\u0028\u0029", + "name": "commit", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_commit" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003ArealConnect\u0028\u0029", + "name": "realConnect", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_realConnect" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AmysqliReport\u0028\u0029", + "name": "mysqliReport", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_mysqliReport" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003Aclose\u0028\u0029", + "name": "close", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_close" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetConnectErrno\u0028\u0029", + "name": "getConnectErrno", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getConnectErrno" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetConnectError\u0028\u0029", + "name": "getConnectError", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getConnectError" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AisServerGone\u0028\u0029", + "name": "isServerGone", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_isServerGone" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetError\u0028\u0029", + "name": "getError", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getError" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetErrNo\u0028\u0029", + "name": "getErrNo", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getErrNo" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetAffectedRows\u0028\u0029", + "name": "getAffectedRows", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getAffectedRows" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetInsertId\u0028\u0029", + "name": "getInsertId", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getInsertId" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003Aautocommit\u0028\u0029", + "name": "autocommit", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_autocommit" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AextractServerResponse\u0028\u0029", + "name": "extractServerResponse", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_extractServerResponse" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetWarnings\u0028\u0029", + "name": "getWarnings", + "summary": "", + "url": "classes/sql-MydbMysqli.html#method_getWarnings" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetFieldCount\u0028\u0029", + "name": "getFieldCount", + "summary": "Returns\u0020fields\u0020count\u0020caused\u0020by\u0020query\u0020execution\nRequires\u0020store_result\u0020to\u0020be\u0020called\u0020first", + "url": "classes/sql-MydbMysqli.html#method_getFieldCount" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AgetWarningCount\u0028\u0029", + "name": "getWarningCount", + "summary": "Returns\u0020warnings\u0020caused\u0020by\u0020query\u0020execution\nRequires\u0020store_result\u0020to\u0020be\u0020called\u0020first", + "url": "classes/sql-MydbMysqli.html#method_getWarningCount" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_INIT_COMMAND", + "name": "MYSQLI_INIT_COMMAND", + "summary": "Command\u0020to\u0020execute\u0020when\u0020connecting\u0020to\u0020MySQL\u0020server.\u0020Will\u0020automatically\u0020be\u0020re\u002Dexecuted\u0020when\u0020reconnecting.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_INIT_COMMAND" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_OPT_CONNECT_TIMEOUT", + "name": "MYSQLI_OPT_CONNECT_TIMEOUT", + "summary": "Connect\u0020timeout\u0020in\u0020seconds", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_OPT_CONNECT_TIMEOUT" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_OPT_NET_CMD_BUFFER_SIZE", + "name": "MYSQLI_OPT_NET_CMD_BUFFER_SIZE", + "summary": "The\u0020size\u0020of\u0020the\u0020internal\u0020command\/network\u0020buffer.\u0020Only\u0020valid\u0020for\u0020mysqlnd.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_OPT_NET_CMD_BUFFER_SIZE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_OPT_NET_READ_BUFFER_SIZE", + "name": "MYSQLI_OPT_NET_READ_BUFFER_SIZE", + "summary": "Maximum\u0020read\u0020chunk\u0020size\u0020in\u0020bytes\u0020when\u0020reading\u0020the\u0020body\u0020of\u0020a\u0020MySQL\u0020command\u0020packet.\u0020Only\u0020valid\u0020for\u0020mysqlnd.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_OPT_NET_READ_BUFFER_SIZE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_OPT_READ_TIMEOUT", + "name": "MYSQLI_OPT_READ_TIMEOUT", + "summary": "Command\u0020execution\u0020result\u0020timeout\u0020in\u0020seconds.\u0020Available\u0020as\u0020of\u0020PHP\u00207.2.0.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_OPT_READ_TIMEOUT" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_STORE_RESULT_COPY_DATA", + "name": "MYSQLI_STORE_RESULT_COPY_DATA", + "summary": "Copy\u0020results\u0020from\u0020the\u0020internal\u0020mysqlnd\u0020buffer\u0020into\u0020the\u0020PHP\u0020variables\u0020fetched.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_STORE_RESULT_COPY_DATA" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_TRANS_COR_RELEASE", + "name": "MYSQLI_TRANS_COR_RELEASE", + "summary": "Appends\u0020\u0022RELEASE\u0022\u0020to\u0020mysqli_commit\u0028\u0029\u0020or\u0020mysqli_rollback\u0028\u0029.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_TRANS_COR_RELEASE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_TRANS_START_READ_ONLY", + "name": "MYSQLI_TRANS_START_READ_ONLY", + "summary": "Start\u0020the\u0020transaction\u0020as\u0020\u0022START\u0020TRANSACTION\u0020READ\u0020ONLY\u0022\u0020with\u0020mysqli_begin_transaction\u0028\u0029.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_TRANS_START_READ_ONLY" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_TRANS_START_READ_WRITE", + "name": "MYSQLI_TRANS_START_READ_WRITE", + "summary": "Start\u0020the\u0020transaction\u0020as\u0020\u0022START\u0020TRANSACTION\u0020READ\u0020WRITE\u0022\u0020with\u0020mysqli_begin_transaction\u0028\u0029.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_TRANS_START_READ_WRITE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_TRANS_COR_NO_RELEASE", + "name": "MYSQLI_TRANS_COR_NO_RELEASE", + "summary": "Appends\u0020\u0022NO\u0020RELEASE\u0022\u0020to\u0020mysqli_commit\u0028\u0029\u0020or\u0020mysqli_rollback\u0028\u0029.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_TRANS_COR_NO_RELEASE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_REPORT_ALL", + "name": "MYSQLI_REPORT_ALL", + "summary": "Set\u0020all\u0020options\u0020on\u0020\u0028report\u0020all\u0029,\u0020report\u0020all\u0020warnings\/errors.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_REPORT_ALL" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_REPORT_INDEX", + "name": "MYSQLI_REPORT_INDEX", + "summary": "Report\u0020if\u0020no\u0020index\u0020or\u0020bad\u0020index\u0020was\u0020used\u0020in\u0020a\u0020query.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_REPORT_INDEX" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003AMYSQLI_REPORT_STRICT", + "name": "MYSQLI_REPORT_STRICT", + "summary": "Throw\u0020a\u0020mysqli_sql_exception\u0020for\u0020errors\u0020instead\u0020of\u0020warnings.", + "url": "classes/sql-MydbMysqli.html#constant_MYSQLI_REPORT_STRICT" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003ASQL_MODE", + "name": "SQL_MODE", + "summary": "Safe\u0020MySQL\u0020SQL_MODE", + "url": "classes/sql-MydbMysqli.html#constant_SQL_MODE" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003A\u0024mysqli", + "name": "mysqli", + "summary": "Mysqli\u0020instance\nThe\u0020mysqli\u0020extension\u0020allows\u0020you\u0020to\u0020access\u0020the\u0020functionality\u0020provided\u0020by\u0020MySQL\u00204.1\u0020and\u0020above", + "url": "classes/sql-MydbMysqli.html#property_mysqli" + }, { + "fqsen": "\\sql\\MydbMysqli\u003A\u003A\u0024isTransaction", + "name": "isTransaction", + "summary": "Flag\u0020indicating\u0020whether\u0020SQL\u0020transaction\u0020was\u0020started\nWARNING\u003A\u0020best\u002Deffort,\u0020only\u0020guaranteed\u0020when\u0020library\u0020is\u0020used\u0020correctly\nIs\u0020transaction\u0020started", + "url": "classes/sql-MydbMysqli.html#property_isTransaction" + }, { + "fqsen": "\\sql\\MydbMysqliInterface", + "name": "MydbMysqliInterface", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003Ainit\u0028\u0029", + "name": "init", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_init" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AsetTransportOptions\u0028\u0029", + "name": "setTransportOptions", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_setTransportOptions" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AisTransactionOpen\u0028\u0029", + "name": "isTransactionOpen", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_isTransactionOpen" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AsetTransactionIsolationLevel\u0028\u0029", + "name": "setTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_setTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AisConnected\u0028\u0029", + "name": "isConnected", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_isConnected" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetMysqli\u0028\u0029", + "name": "getMysqli", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getMysqli" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003ArealQuery\u0028\u0029", + "name": "realQuery", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_realQuery" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AreadServerResponse\u0028\u0029", + "name": "readServerResponse", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_readServerResponse" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AbeginTransactionReadwrite\u0028\u0029", + "name": "beginTransactionReadwrite", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_beginTransactionReadwrite" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AbeginTransactionReadonly\u0028\u0029", + "name": "beginTransactionReadonly", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_beginTransactionReadonly" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003Arollback\u0028\u0029", + "name": "rollback", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_rollback" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AcommitAndRelease\u0028\u0029", + "name": "commitAndRelease", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_commitAndRelease" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003Acommit\u0028\u0029", + "name": "commit", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_commit" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003ArealConnect\u0028\u0029", + "name": "realConnect", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_realConnect" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AmysqliReport\u0028\u0029", + "name": "mysqliReport", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_mysqliReport" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003Aclose\u0028\u0029", + "name": "close", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_close" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetConnectErrno\u0028\u0029", + "name": "getConnectErrno", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getConnectErrno" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetConnectError\u0028\u0029", + "name": "getConnectError", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getConnectError" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AisServerGone\u0028\u0029", + "name": "isServerGone", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_isServerGone" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetError\u0028\u0029", + "name": "getError", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getError" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetErrNo\u0028\u0029", + "name": "getErrNo", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getErrNo" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetAffectedRows\u0028\u0029", + "name": "getAffectedRows", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getAffectedRows" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetInsertId\u0028\u0029", + "name": "getInsertId", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getInsertId" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003Aautocommit\u0028\u0029", + "name": "autocommit", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_autocommit" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AextractServerResponse\u0028\u0029", + "name": "extractServerResponse", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_extractServerResponse" + }, { + "fqsen": "\\sql\\MydbMysqliInterface\u003A\u003AgetWarnings\u0028\u0029", + "name": "getWarnings", + "summary": "", + "url": "classes/sql-MydbMysqliInterface.html#method_getWarnings" + }, { + "fqsen": "\\sql\\MydbOptions", + "name": "MydbOptions", + "summary": "", + "url": "classes/sql-MydbOptions.html" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetNonInteractiveTimeout\u0028\u0029", + "name": "getNonInteractiveTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getNonInteractiveTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetNonInteractiveTimeout\u0028\u0029", + "name": "setNonInteractiveTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setNonInteractiveTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetServerSideSelectTimeout\u0028\u0029", + "name": "getServerSideSelectTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getServerSideSelectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetServerSideSelectTimeout\u0028\u0029", + "name": "setServerSideSelectTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setServerSideSelectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetConnectTimeout\u0028\u0029", + "name": "getConnectTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getConnectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetConnectTimeout\u0028\u0029", + "name": "setConnectTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setConnectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetErrorReporting\u0028\u0029", + "name": "getErrorReporting", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getErrorReporting" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetErrorReporting\u0028\u0029", + "name": "setErrorReporting", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setErrorReporting" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetReadTimeout\u0028\u0029", + "name": "getReadTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getReadTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetReadTimeout\u0028\u0029", + "name": "setReadTimeout", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setReadTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetNetworkBufferSize\u0028\u0029", + "name": "getNetworkBufferSize", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getNetworkBufferSize" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetNetworkBufferSize\u0028\u0029", + "name": "setNetworkBufferSize", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setNetworkBufferSize" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetNetworkReadBuffer\u0028\u0029", + "name": "getNetworkReadBuffer", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getNetworkReadBuffer" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetNetworkReadBuffer\u0028\u0029", + "name": "setNetworkReadBuffer", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setNetworkReadBuffer" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetClientErrorLevel\u0028\u0029", + "name": "getClientErrorLevel", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getClientErrorLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetClientErrorLevel\u0028\u0029", + "name": "setClientErrorLevel", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setClientErrorLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetTimeZone\u0028\u0029", + "name": "getTimeZone", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getTimeZone" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetTimeZone\u0028\u0029", + "name": "setTimeZone", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setTimeZone" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AisAutocommit\u0028\u0029", + "name": "isAutocommit", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_isAutocommit" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetAutocommit\u0028\u0029", + "name": "setAutocommit", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setAutocommit" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetCharset\u0028\u0029", + "name": "getCharset", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getCharset" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetCharset\u0028\u0029", + "name": "setCharset", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setCharset" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AisPersistent\u0028\u0029", + "name": "isPersistent", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_isPersistent" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetPersistent\u0028\u0029", + "name": "setPersistent", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setPersistent" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AisReadonly\u0028\u0029", + "name": "isReadonly", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_isReadonly" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetReadonly\u0028\u0029", + "name": "setReadonly", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setReadonly" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AgetTransactionIsolationLevel\u0028\u0029", + "name": "getTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_getTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003AsetTransactionIsolationLevel\u0028\u0029", + "name": "setTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbOptions.html#method_setTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003ANET_CMD_BUFFER_SIZE_MIN", + "name": "NET_CMD_BUFFER_SIZE_MIN", + "summary": "", + "url": "classes/sql-MydbOptions.html#constant_NET_CMD_BUFFER_SIZE_MIN" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003ANET_CMD_BUFFER_SIZE_MAX", + "name": "NET_CMD_BUFFER_SIZE_MAX", + "summary": "", + "url": "classes/sql-MydbOptions.html#constant_NET_CMD_BUFFER_SIZE_MAX" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003ANET_READ_BUFFER_MIN", + "name": "NET_READ_BUFFER_MIN", + "summary": "", + "url": "classes/sql-MydbOptions.html#constant_NET_READ_BUFFER_MIN" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003ANET_READ_BUFFER_MAX", + "name": "NET_READ_BUFFER_MAX", + "summary": "", + "url": "classes/sql-MydbOptions.html#constant_NET_READ_BUFFER_MAX" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024serverSideSelectTimeout", + "name": "serverSideSelectTimeout", + "summary": "The\u0020execution\u0020timeout\u0020ONLY\u0020APPLIES\u0020TO\u0020\u0022SELECT\u0022\u0020statements,\u0020seconds\nX\u0020\u003E\u00200,\u0020enabled\nX\u0020\u003D\u00200,\u0020not\u0020enabled.", + "url": "classes/sql-MydbOptions.html#property_serverSideSelectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024connectTimeout", + "name": "connectTimeout", + "summary": "MySql\u0020client\u0020connection\u0020timeout,\u0020seconds", + "url": "classes/sql-MydbOptions.html#property_connectTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024errorReporting", + "name": "errorReporting", + "summary": "", + "url": "classes/sql-MydbOptions.html#property_errorReporting" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024readTimeout", + "name": "readTimeout", + "summary": "The\u0020timeout\u0020in\u0020seconds\u0020for\u0020each\u0020attempt\u0020to\u0020read\u0020from\u0020the\u0020server.", + "url": "classes/sql-MydbOptions.html#property_readTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024networkBufferSize", + "name": "networkBufferSize", + "summary": "Internal\u0020network\u0020buffer\u0020of\u0020mysqlnd.net_cmd_buffer_size\u0020bytes\u0020for\u0020every\u0020connection", + "url": "classes/sql-MydbOptions.html#property_networkBufferSize" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024networkReadBuffer", + "name": "networkReadBuffer", + "summary": "More\u0020memory\u0020for\u0020better\u0020performance", + "url": "classes/sql-MydbOptions.html#property_networkReadBuffer" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024clientErrorLevel", + "name": "clientErrorLevel", + "summary": "Sets\u0020mysqli\u0020error\u0020reporting\u0020mode", + "url": "classes/sql-MydbOptions.html#property_clientErrorLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024transactionIsolationLevel", + "name": "transactionIsolationLevel", + "summary": "Transaction\u0020isolation\u0020is\u0020one\u0020of\u0020the\u0020foundations\u0020of\u0020database\u0020processing.", + "url": "classes/sql-MydbOptions.html#property_transactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024timeZone", + "name": "timeZone", + "summary": "Set\u0020session\u0020time\u0020zone", + "url": "classes/sql-MydbOptions.html#property_timeZone" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024nonInteractiveTimeout", + "name": "nonInteractiveTimeout", + "summary": "The\u0020number\u0020of\u0020seconds\u0020the\u0020server\u0020waits\u0020for\u0020activity\non\u0020a\u0020non\u002Dinteractive\u0020TCP\/IP\u0020or\u0020UNIX\u0020File\u0020connection\u0020before\u0020closing\u0020it", + "url": "classes/sql-MydbOptions.html#property_nonInteractiveTimeout" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024autocommit", + "name": "autocommit", + "summary": "Recommended\u0020defaults\u003A\nfalse\u0020for\u0020rw\u0020connection\ntrue\u0020for\u0020ro\u0020connection\ntrue\u0020for\u0020async\u0020connection", + "url": "classes/sql-MydbOptions.html#property_autocommit" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024charset", + "name": "charset", + "summary": "", + "url": "classes/sql-MydbOptions.html#property_charset" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024persistent", + "name": "persistent", + "summary": "Transaction\u0020block\u0020will\u0020also\u0020carry\u0020over\u0020to\u0020the\u0020next\u0020script\nwhich\u0020uses\u0020that\u0020connection\u0020if\u0020script\u0020execution\u0020ends\u0020before\u0020the\u0020transaction\u0020block\u0020does", + "url": "classes/sql-MydbOptions.html#property_persistent" + }, { + "fqsen": "\\sql\\MydbOptions\u003A\u003A\u0024readonly", + "name": "readonly", + "summary": "Readonly\u0020connection", + "url": "classes/sql-MydbOptions.html#property_readonly" + }, { + "fqsen": "\\sql\\MydbOptionsInterface", + "name": "MydbOptionsInterface", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetNonInteractiveTimeout\u0028\u0029", + "name": "getNonInteractiveTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getNonInteractiveTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetNonInteractiveTimeout\u0028\u0029", + "name": "setNonInteractiveTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setNonInteractiveTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetServerSideSelectTimeout\u0028\u0029", + "name": "getServerSideSelectTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getServerSideSelectTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetServerSideSelectTimeout\u0028\u0029", + "name": "setServerSideSelectTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setServerSideSelectTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetConnectTimeout\u0028\u0029", + "name": "getConnectTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getConnectTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetConnectTimeout\u0028\u0029", + "name": "setConnectTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setConnectTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetErrorReporting\u0028\u0029", + "name": "getErrorReporting", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getErrorReporting" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetErrorReporting\u0028\u0029", + "name": "setErrorReporting", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setErrorReporting" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetReadTimeout\u0028\u0029", + "name": "getReadTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getReadTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetReadTimeout\u0028\u0029", + "name": "setReadTimeout", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setReadTimeout" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetNetworkBufferSize\u0028\u0029", + "name": "getNetworkBufferSize", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getNetworkBufferSize" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetNetworkBufferSize\u0028\u0029", + "name": "setNetworkBufferSize", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setNetworkBufferSize" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetNetworkReadBuffer\u0028\u0029", + "name": "getNetworkReadBuffer", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getNetworkReadBuffer" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetNetworkReadBuffer\u0028\u0029", + "name": "setNetworkReadBuffer", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setNetworkReadBuffer" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetClientErrorLevel\u0028\u0029", + "name": "getClientErrorLevel", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getClientErrorLevel" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetClientErrorLevel\u0028\u0029", + "name": "setClientErrorLevel", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setClientErrorLevel" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetTimeZone\u0028\u0029", + "name": "getTimeZone", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getTimeZone" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetTimeZone\u0028\u0029", + "name": "setTimeZone", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setTimeZone" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AisAutocommit\u0028\u0029", + "name": "isAutocommit", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_isAutocommit" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetAutocommit\u0028\u0029", + "name": "setAutocommit", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setAutocommit" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetCharset\u0028\u0029", + "name": "getCharset", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getCharset" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AgetTransactionIsolationLevel\u0028\u0029", + "name": "getTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_getTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetTransactionIsolationLevel\u0028\u0029", + "name": "setTransactionIsolationLevel", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setTransactionIsolationLevel" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetCharset\u0028\u0029", + "name": "setCharset", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setCharset" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AisPersistent\u0028\u0029", + "name": "isPersistent", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_isPersistent" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetPersistent\u0028\u0029", + "name": "setPersistent", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setPersistent" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AisReadonly\u0028\u0029", + "name": "isReadonly", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_isReadonly" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003AsetReadonly\u0028\u0029", + "name": "setReadonly", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#method_setReadonly" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003ATRANSACTION_ISOLATION_LEVEL_DEFAULT", + "name": "TRANSACTION_ISOLATION_LEVEL_DEFAULT", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#constant_TRANSACTION_ISOLATION_LEVEL_DEFAULT" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003ATRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ", + "name": "TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#constant_TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003ATRANSACTION_ISOLATION_LEVEL_READ_COMMITTED", + "name": "TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#constant_TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003ATRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED", + "name": "TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#constant_TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED" + }, { + "fqsen": "\\sql\\MydbOptionsInterface\u003A\u003ATRANSACTION_ISOLATION_LEVEL_SERIALIZABLE", + "name": "TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE", + "summary": "", + "url": "classes/sql-MydbOptionsInterface.html#constant_TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE" + }, { + "fqsen": "\\sql\\MydbQueryBuilder", + "name": "MydbQueryBuilder", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method___construct" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AshowColumnsLike\u0028\u0029", + "name": "showColumnsLike", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_showColumnsLike" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AshowKeys\u0028\u0029", + "name": "showKeys", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_showKeys" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AinsertOne\u0028\u0029", + "name": "insertOne", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_insertOne" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AbuildUpdateWhereMany\u0028\u0029", + "name": "buildUpdateWhereMany", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_buildUpdateWhereMany" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AbuildUpdateWhere\u0028\u0029", + "name": "buildUpdateWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_buildUpdateWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AbuildDeleteWhere\u0028\u0029", + "name": "buildDeleteWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_buildDeleteWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AbuildWhere\u0028\u0029", + "name": "buildWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_buildWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003AbuildInsertMany\u0028\u0029", + "name": "buildInsertMany", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_buildInsertMany" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003Aescape\u0028\u0029", + "name": "escape", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#method_escape" + }, { + "fqsen": "\\sql\\MydbQueryBuilder\u003A\u003A\u0024mysqli", + "name": "mysqli", + "summary": "", + "url": "classes/sql-MydbQueryBuilder.html#property_mysqli" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface", + "name": "MydbQueryBuilderInterface", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AshowColumnsLike\u0028\u0029", + "name": "showColumnsLike", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_showColumnsLike" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AshowKeys\u0028\u0029", + "name": "showKeys", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_showKeys" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AinsertOne\u0028\u0029", + "name": "insertOne", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_insertOne" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AbuildUpdateWhereMany\u0028\u0029", + "name": "buildUpdateWhereMany", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_buildUpdateWhereMany" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AbuildUpdateWhere\u0028\u0029", + "name": "buildUpdateWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_buildUpdateWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AbuildDeleteWhere\u0028\u0029", + "name": "buildDeleteWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_buildDeleteWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AbuildWhere\u0028\u0029", + "name": "buildWhere", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_buildWhere" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003AbuildInsertMany\u0028\u0029", + "name": "buildInsertMany", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_buildInsertMany" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003Aescape\u0028\u0029", + "name": "escape", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#method_escape" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003ASQL_INSERT", + "name": "SQL_INSERT", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#constant_SQL_INSERT" + }, { + "fqsen": "\\sql\\MydbQueryBuilderInterface\u003A\u003ASQL_REPLACE", + "name": "SQL_REPLACE", + "summary": "", + "url": "classes/sql-MydbQueryBuilderInterface.html#constant_SQL_REPLACE" + }, { + "fqsen": "\\sql\\MydbRegistry", + "name": "MydbRegistry", + "summary": "Singleton\u0020or\u0020registry\u0020helper\u0020to\u0020manage\u0020multiple\u0020Mydb\u0020instances", + "url": "classes/sql-MydbRegistry.html" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Aserialize\u0028\u0029", + "name": "serialize", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method_serialize" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Aunserialize\u0028\u0029", + "name": "unserialize", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method_unserialize" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Acurrent\u0028\u0029", + "name": "current", + "summary": "Return\u0020the\u0020current\u0020element", + "url": "classes/sql-MydbRegistry.html#method_current" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Akey\u0028\u0029", + "name": "key", + "summary": "Return\u0020the\u0020key\u0020of\u0020the\u0020current\u0020element", + "url": "classes/sql-MydbRegistry.html#method_key" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Anext\u0028\u0029", + "name": "next", + "summary": "Move\u0020forward\u0020to\u0020next\u0020element", + "url": "classes/sql-MydbRegistry.html#method_next" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Arewind\u0028\u0029", + "name": "rewind", + "summary": "Rewind\u0020the\u0020Iterator\u0020to\u0020the\u0020first\u0020element", + "url": "classes/sql-MydbRegistry.html#method_rewind" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Avalid\u0028\u0029", + "name": "valid", + "summary": "Checks\u0020if\u0020current\u0020position\u0020is\u0020valid", + "url": "classes/sql-MydbRegistry.html#method_valid" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003Acount\u0028\u0029", + "name": "count", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method_count" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003AoffsetExists\u0028\u0029", + "name": "offsetExists", + "summary": "Whether\u0020an\u0020offset\u0020exists", + "url": "classes/sql-MydbRegistry.html#method_offsetExists" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003AoffsetGet\u0028\u0029", + "name": "offsetGet", + "summary": "Offset\u0020to\u0020retrieve", + "url": "classes/sql-MydbRegistry.html#method_offsetGet" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003AoffsetSet\u0028\u0029", + "name": "offsetSet", + "summary": "Offset\u0020to\u0020set", + "url": "classes/sql-MydbRegistry.html#method_offsetSet" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003AoffsetUnset\u0028\u0029", + "name": "offsetUnset", + "summary": "Offset\u0020to\u0020unset", + "url": "classes/sql-MydbRegistry.html#method_offsetUnset" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003A__clone\u0028\u0029", + "name": "__clone", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method___clone" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003A__serialize\u0028\u0029", + "name": "__serialize", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method___serialize" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003A__unserialize\u0028\u0029", + "name": "__unserialize", + "summary": "", + "url": "classes/sql-MydbRegistry.html#method___unserialize" + }, { + "fqsen": "\\sql\\MydbRegistry\u003A\u003A\u0024instance", + "name": "instance", + "summary": "", + "url": "classes/sql-MydbRegistry.html#property_instance" + }, { + "fqsen": "\\sql\\MydbRepository", + "name": "MydbRepository", + "summary": "", + "url": "classes/sql-MydbRepository.html" + }, { + "fqsen": "\\sql\\MydbRepository\u003A\u003AgetDatabaseIdentifier\u0028\u0029", + "name": "getDatabaseIdentifier", + "summary": "", + "url": "classes/sql-MydbRepository.html#method_getDatabaseIdentifier" + }, { + "fqsen": "\\sql\\MydbRepository\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "", + "url": "classes/sql-MydbRepository.html#method___construct" + }, { + "fqsen": "\\sql\\MydbRepository\u003A\u003AgetDatabase\u0028\u0029", + "name": "getDatabase", + "summary": "", + "url": "classes/sql-MydbRepository.html#method_getDatabase" + }, { + "fqsen": "\\sql\\MydbRepository\u003A\u003A\u0024registry", + "name": "registry", + "summary": "", + "url": "classes/sql-MydbRepository.html#property_registry" + }, { + "fqsen": "\\sql\\MydbRepositoryInterface", + "name": "MydbRepositoryInterface", + "summary": "", + "url": "classes/sql-MydbRepositoryInterface.html" + }, { + "fqsen": "\\sql\\MydbRepositoryInterface\u003A\u003AgetDatabase\u0028\u0029", + "name": "getDatabase", + "summary": "", + "url": "classes/sql-MydbRepositoryInterface.html#method_getDatabase" + }, { + "fqsen": "\\", + "name": "\\", + "summary": "", + "url": "namespaces/default.html" + }, { + "fqsen": "\\sql", + "name": "sql", + "summary": "", + "url": "namespaces/sql.html" + }, { + "fqsen": "\\sql\\MydbEvent", + "name": "MydbEvent", + "summary": "", + "url": "namespaces/sql-mydbevent.html" + }, { + "fqsen": "\\sql\\MydbException", + "name": "MydbException", + "summary": "", + "url": "namespaces/sql-mydbexception.html" + }, { + "fqsen": "\\sql\\MydbInterface", + "name": "MydbInterface", + "summary": "", + "url": "namespaces/sql-mydbinterface.html" + }, { + "fqsen": "\\sql\\MydbListener", + "name": "MydbListener", + "summary": "", + "url": "namespaces/sql-mydblistener.html" + }, { + "fqsen": "\\sql\\MydbMysqli", + "name": "MydbMysqli", + "summary": "", + "url": "namespaces/sql-mydbmysqli.html" + } ] +); diff --git a/php/phpdoc/js/template.js b/php/phpdoc/js/template.js new file mode 100644 index 00000000000..49383291fb7 --- /dev/null +++ b/php/phpdoc/js/template.js @@ -0,0 +1,17 @@ +(function(){ + window.addEventListener('load', () => { + const el = document.querySelector('.phpdocumentor-on-this-page__content') + if (!el) { + return; + } + + const observer = new IntersectionObserver( + ([e]) => { + e.target.classList.toggle("-stuck", e.intersectionRatio < 1); + }, + {threshold: [1]} + ); + + observer.observe(el); + }) +})(); diff --git a/php/phpdoc/namespaces/default.html b/php/phpdoc/namespaces/default.html new file mode 100644 index 00000000000..85256538b1d --- /dev/null +++ b/php/phpdoc/namespaces/default.html @@ -0,0 +1,280 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  API Documentation

                                                                                                                                                                                                                                                                                  + + +

                                                                                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                                                                                  + + +

                                                                                                                                                                                                                                                                                  + Namespaces + + +

                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  sql
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/namespaces/index.html b/php/phpdoc/namespaces/index.html new file mode 100644 index 00000000000..4cc71ba0955 --- /dev/null +++ b/php/phpdoc/namespaces/index.html @@ -0,0 +1,102 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    Index of /php/phpdoc/namespaces

                                                                                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                    + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    ..

                                                                                                                                                                                                                                                                                    .. +
                                                                                                                                                                                                                                                                                    -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    default.html

                                                                                                                                                                                                                                                                                    default.html +
                                                                                                                                                                                                                                                                                    12 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql-mydbevent.html

                                                                                                                                                                                                                                                                                    sql-mydbevent.html +
                                                                                                                                                                                                                                                                                    13 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql-mydbexception.html

                                                                                                                                                                                                                                                                                    sql-mydbexception.html +
                                                                                                                                                                                                                                                                                    17 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql-mydbinterface.html

                                                                                                                                                                                                                                                                                    sql-mydbinterface.html +
                                                                                                                                                                                                                                                                                    14 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql-mydblistener.html

                                                                                                                                                                                                                                                                                    sql-mydblistener.html +
                                                                                                                                                                                                                                                                                    12 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql-mydbmysqli.html

                                                                                                                                                                                                                                                                                    sql-mydbmysqli.html +
                                                                                                                                                                                                                                                                                    13 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    sql.html

                                                                                                                                                                                                                                                                                    sql.html +
                                                                                                                                                                                                                                                                                    18 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                    + + generated by apindex + + +
                                                                                                                                                                                                                                                                                    + + diff --git a/php/phpdoc/namespaces/sql-mydbevent.html b/php/phpdoc/namespaces/sql-mydbevent.html new file mode 100644 index 00000000000..4b79457e9b8 --- /dev/null +++ b/php/phpdoc/namespaces/sql-mydbevent.html @@ -0,0 +1,281 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    MydbEvent

                                                                                                                                                                                                                                                                                    + + +

                                                                                                                                                                                                                                                                                    + Table of Contents + + +

                                                                                                                                                                                                                                                                                    + + + + +

                                                                                                                                                                                                                                                                                    + Classes + + +

                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    InternalConnectionBegin
                                                                                                                                                                                                                                                                                    InternalConnectionEnd
                                                                                                                                                                                                                                                                                    InternalEvent
                                                                                                                                                                                                                                                                                    InternalQueryBegin
                                                                                                                                                                                                                                                                                    InternalQueryEnd
                                                                                                                                                                                                                                                                                    + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                    +        
                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + + + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                    + On this page + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                    • Table Of Contents
                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                    • + +
                                                                                                                                                                                                                                                                                    • + + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/namespaces/sql-mydbexception.html b/php/phpdoc/namespaces/sql-mydbexception.html new file mode 100644 index 00000000000..8bcda26ac96 --- /dev/null +++ b/php/phpdoc/namespaces/sql-mydbexception.html @@ -0,0 +1,281 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                      MydbException

                                                                                                                                                                                                                                                                                      + + +

                                                                                                                                                                                                                                                                                      + Table of Contents + + +

                                                                                                                                                                                                                                                                                      + + + + +

                                                                                                                                                                                                                                                                                      + Classes + + +

                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      ConnectDefaultsException
                                                                                                                                                                                                                                                                                      ConnectException
                                                                                                                                                                                                                                                                                      DeleteException
                                                                                                                                                                                                                                                                                      DisconnectException
                                                                                                                                                                                                                                                                                      EnvironmentException
                                                                                                                                                                                                                                                                                      EventException
                                                                                                                                                                                                                                                                                      InternalException
                                                                                                                                                                                                                                                                                      LoggerException
                                                                                                                                                                                                                                                                                      OptionException
                                                                                                                                                                                                                                                                                      QueryBuilderEscapeException
                                                                                                                                                                                                                                                                                      QueryBuilderException
                                                                                                                                                                                                                                                                                      RegistryException
                                                                                                                                                                                                                                                                                      ServerGoneException
                                                                                                                                                                                                                                                                                      TerminationSignalException
                                                                                                                                                                                                                                                                                      TransactionAutocommitException
                                                                                                                                                                                                                                                                                      TransactionBeginException
                                                                                                                                                                                                                                                                                      TransactionBeginReadonlyException
                                                                                                                                                                                                                                                                                      TransactionBeginReadwriteException
                                                                                                                                                                                                                                                                                      TransactionCommitException
                                                                                                                                                                                                                                                                                      TransactionIsolationException
                                                                                                                                                                                                                                                                                      TransactionRollbackException
                                                                                                                                                                                                                                                                                      UpdateException
                                                                                                                                                                                                                                                                                      + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                      +        
                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + + + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                      + On this page + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                      • Table Of Contents
                                                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                                                      • + +
                                                                                                                                                                                                                                                                                      • + + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/namespaces/sql-mydbinterface.html b/php/phpdoc/namespaces/sql-mydbinterface.html new file mode 100644 index 00000000000..b766caa0c99 --- /dev/null +++ b/php/phpdoc/namespaces/sql-mydbinterface.html @@ -0,0 +1,281 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                        MydbInterface

                                                                                                                                                                                                                                                                                        + + +

                                                                                                                                                                                                                                                                                        + Table of Contents + + +

                                                                                                                                                                                                                                                                                        + + + +

                                                                                                                                                                                                                                                                                        + Interfaces + + +

                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        AdministrationStatementsInterface
                                                                                                                                                                                                                                                                                        CommandInterface
                                                                                                                                                                                                                                                                                        DataManipulationStatementsInterface
                                                                                                                                                                                                                                                                                        These statements do not implicitly commit the current transaction.
                                                                                                                                                                                                                                                                                        EncoderInterface
                                                                                                                                                                                                                                                                                        QueryInterface
                                                                                                                                                                                                                                                                                        RemoteResourceInterface
                                                                                                                                                                                                                                                                                        TransactionInterface
                                                                                                                                                                                                                                                                                        + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                        +        
                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        + + + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                        + On this page + + +
                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpdoc/namespaces/sql-mydblistener.html b/php/phpdoc/namespaces/sql-mydblistener.html new file mode 100644 index 00000000000..147e18d47e0 --- /dev/null +++ b/php/phpdoc/namespaces/sql-mydblistener.html @@ -0,0 +1,281 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                          phpDocumentor

                                                                                                                                                                                                                                                                                          + + + + + +
                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + + + + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                          MydbListener

                                                                                                                                                                                                                                                                                          + + +

                                                                                                                                                                                                                                                                                          + Table of Contents + + +

                                                                                                                                                                                                                                                                                          + + + + +

                                                                                                                                                                                                                                                                                          + Classes + + +

                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          InternalListener
                                                                                                                                                                                                                                                                                          + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                          +        
                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                          + On this page + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                          • Table Of Contents
                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                          • + +
                                                                                                                                                                                                                                                                                          • + + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                          Search results

                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                                                                            + + + + + + + + diff --git a/php/phpdoc/namespaces/sql-mydbmysqli.html b/php/phpdoc/namespaces/sql-mydbmysqli.html new file mode 100644 index 00000000000..2992754ec1a --- /dev/null +++ b/php/phpdoc/namespaces/sql-mydbmysqli.html @@ -0,0 +1,289 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                            phpDocumentor

                                                                                                                                                                                                                                                                                            + + + + + +
                                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            + + + + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                            MydbMysqli

                                                                                                                                                                                                                                                                                            + + +

                                                                                                                                                                                                                                                                                            + Table of Contents + + +

                                                                                                                                                                                                                                                                                            + + + +

                                                                                                                                                                                                                                                                                            + Interfaces + + +

                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            MydbMysqliEscapeStringInterface
                                                                                                                                                                                                                                                                                            MydbMysqliResultInterface
                                                                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                                                                            + Classes + + +

                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            MydbMysqliResult
                                                                                                                                                                                                                                                                                            + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                            +        
                                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            + + + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                                            + On this page + + +
                                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                            Search results

                                                                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                                                                                              + + + + + + + + diff --git a/php/phpdoc/namespaces/sql.html b/php/phpdoc/namespaces/sql.html new file mode 100644 index 00000000000..6accf2905ac --- /dev/null +++ b/php/phpdoc/namespaces/sql.html @@ -0,0 +1,300 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                              phpDocumentor

                                                                                                                                                                                                                                                                                              + + + + + +
                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              + + + + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                              sql

                                                                                                                                                                                                                                                                                              + + +

                                                                                                                                                                                                                                                                                              + Table of Contents + + +

                                                                                                                                                                                                                                                                                              + + +

                                                                                                                                                                                                                                                                                              + Namespaces + + +

                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbEvent
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbException
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbInterface
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbListener
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbMysqli
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                              + Interfaces + + +

                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              MydbCredentialsInterface
                                                                                                                                                                                                                                                                                              MydbEnvironmentInterface
                                                                                                                                                                                                                                                                                              MydbEventInterface
                                                                                                                                                                                                                                                                                              MydbEventMetadataInterface
                                                                                                                                                                                                                                                                                              MydbExpressionInterface
                                                                                                                                                                                                                                                                                              MydbInterface
                                                                                                                                                                                                                                                                                              MydbListenerInterface
                                                                                                                                                                                                                                                                                              MydbMysqliInterface
                                                                                                                                                                                                                                                                                              MydbOptionsInterface
                                                                                                                                                                                                                                                                                              MydbQueryBuilderInterface
                                                                                                                                                                                                                                                                                              MydbRepositoryInterface
                                                                                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                                                                                              + Classes + + +

                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              Mydb
                                                                                                                                                                                                                                                                                              MydbCredentials
                                                                                                                                                                                                                                                                                              MydbEnvironment
                                                                                                                                                                                                                                                                                              MydbEvent
                                                                                                                                                                                                                                                                                              MydbException
                                                                                                                                                                                                                                                                                              MydbExpression
                                                                                                                                                                                                                                                                                              MydbListener
                                                                                                                                                                                                                                                                                              MydbLogger
                                                                                                                                                                                                                                                                                              Implementation of PSR-3 Logger that will output to STDERR & STDOUT
                                                                                                                                                                                                                                                                                              MydbMysqli
                                                                                                                                                                                                                                                                                              Facade for php mysqli extension
                                                                                                                                                                                                                                                                                              MydbOptions
                                                                                                                                                                                                                                                                                              MydbQueryBuilder
                                                                                                                                                                                                                                                                                              MydbRegistry
                                                                                                                                                                                                                                                                                              Singleton or registry helper to manage multiple Mydb instances
                                                                                                                                                                                                                                                                                              MydbRepository
                                                                                                                                                                                                                                                                                              + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                              +        
                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              + + + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              + On this page + + +
                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +

                                                                                                                                                                                                                                                                                              Search results

                                                                                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                                                                                + + + + + + + + diff --git a/php/phpdoc/packages/Application.html b/php/phpdoc/packages/Application.html new file mode 100644 index 00000000000..7fc688accaf --- /dev/null +++ b/php/phpdoc/packages/Application.html @@ -0,0 +1,288 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                phpDocumentor

                                                                                                                                                                                                                                                                                                + + + + + +
                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                + + + + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                Application

                                                                                                                                                                                                                                                                                                + + +

                                                                                                                                                                                                                                                                                                + Table of Contents + + +

                                                                                                                                                                                                                                                                                                + + + +

                                                                                                                                                                                                                                                                                                + Interfaces + + +

                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                MydbCredentialsInterface
                                                                                                                                                                                                                                                                                                MydbEnvironmentInterface
                                                                                                                                                                                                                                                                                                MydbEventInterface
                                                                                                                                                                                                                                                                                                MydbEventMetadataInterface
                                                                                                                                                                                                                                                                                                MydbExpressionInterface
                                                                                                                                                                                                                                                                                                AdministrationStatementsInterface
                                                                                                                                                                                                                                                                                                CommandInterface
                                                                                                                                                                                                                                                                                                DataManipulationStatementsInterface
                                                                                                                                                                                                                                                                                                These statements do not implicitly commit the current transaction.
                                                                                                                                                                                                                                                                                                EncoderInterface
                                                                                                                                                                                                                                                                                                QueryInterface
                                                                                                                                                                                                                                                                                                RemoteResourceInterface
                                                                                                                                                                                                                                                                                                TransactionInterface
                                                                                                                                                                                                                                                                                                MydbInterface
                                                                                                                                                                                                                                                                                                MydbListenerInterface
                                                                                                                                                                                                                                                                                                MydbMysqliEscapeStringInterface
                                                                                                                                                                                                                                                                                                MydbMysqliResultInterface
                                                                                                                                                                                                                                                                                                MydbMysqliInterface
                                                                                                                                                                                                                                                                                                MydbOptionsInterface
                                                                                                                                                                                                                                                                                                MydbQueryBuilderInterface
                                                                                                                                                                                                                                                                                                MydbRepositoryInterface
                                                                                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                                                                                + Classes + + +

                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                Mydb
                                                                                                                                                                                                                                                                                                MydbCredentials
                                                                                                                                                                                                                                                                                                MydbEnvironment
                                                                                                                                                                                                                                                                                                InternalConnectionBegin
                                                                                                                                                                                                                                                                                                InternalConnectionEnd
                                                                                                                                                                                                                                                                                                InternalEvent
                                                                                                                                                                                                                                                                                                InternalQueryBegin
                                                                                                                                                                                                                                                                                                InternalQueryEnd
                                                                                                                                                                                                                                                                                                MydbEvent
                                                                                                                                                                                                                                                                                                ConnectDefaultsException
                                                                                                                                                                                                                                                                                                ConnectException
                                                                                                                                                                                                                                                                                                DeleteException
                                                                                                                                                                                                                                                                                                DisconnectException
                                                                                                                                                                                                                                                                                                EnvironmentException
                                                                                                                                                                                                                                                                                                EventException
                                                                                                                                                                                                                                                                                                InternalException
                                                                                                                                                                                                                                                                                                LoggerException
                                                                                                                                                                                                                                                                                                OptionException
                                                                                                                                                                                                                                                                                                QueryBuilderEscapeException
                                                                                                                                                                                                                                                                                                QueryBuilderException
                                                                                                                                                                                                                                                                                                RegistryException
                                                                                                                                                                                                                                                                                                ServerGoneException
                                                                                                                                                                                                                                                                                                TerminationSignalException
                                                                                                                                                                                                                                                                                                TransactionAutocommitException
                                                                                                                                                                                                                                                                                                TransactionBeginException
                                                                                                                                                                                                                                                                                                TransactionBeginReadonlyException
                                                                                                                                                                                                                                                                                                TransactionBeginReadwriteException
                                                                                                                                                                                                                                                                                                TransactionCommitException
                                                                                                                                                                                                                                                                                                TransactionIsolationException
                                                                                                                                                                                                                                                                                                TransactionRollbackException
                                                                                                                                                                                                                                                                                                UpdateException
                                                                                                                                                                                                                                                                                                MydbException
                                                                                                                                                                                                                                                                                                MydbExpression
                                                                                                                                                                                                                                                                                                InternalListener
                                                                                                                                                                                                                                                                                                MydbListener
                                                                                                                                                                                                                                                                                                MydbLogger
                                                                                                                                                                                                                                                                                                Implementation of PSR-3 Logger that will output to STDERR & STDOUT
                                                                                                                                                                                                                                                                                                MydbMysqliResult
                                                                                                                                                                                                                                                                                                MydbMysqli
                                                                                                                                                                                                                                                                                                Facade for php mysqli extension
                                                                                                                                                                                                                                                                                                MydbOptions
                                                                                                                                                                                                                                                                                                MydbQueryBuilder
                                                                                                                                                                                                                                                                                                MydbRegistry
                                                                                                                                                                                                                                                                                                Singleton or registry helper to manage multiple Mydb instances
                                                                                                                                                                                                                                                                                                MydbRepository
                                                                                                                                                                                                                                                                                                + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                +        
                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                + + + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                + On this page + + +
                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                Search results

                                                                                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                                                                                  + + + + + + + + diff --git a/php/phpdoc/packages/default.html b/php/phpdoc/packages/default.html new file mode 100644 index 00000000000..14f2a82d2d2 --- /dev/null +++ b/php/phpdoc/packages/default.html @@ -0,0 +1,280 @@ + + + + + phpDocumentor + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                                  phpDocumentor

                                                                                                                                                                                                                                                                                                  + + + + + +
                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + + + + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                                  API Documentation

                                                                                                                                                                                                                                                                                                  + + +

                                                                                                                                                                                                                                                                                                  + Table of Contents + + +

                                                                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                                                                  + Packages + + +

                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  Application
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                  +        
                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + + + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  + On this page + +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                  • Table Of Contents
                                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                  • + + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                                  Search results

                                                                                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                                                    + + + + + + + + diff --git a/php/phpdoc/packages/index.html b/php/phpdoc/packages/index.html new file mode 100644 index 00000000000..ab605084a05 --- /dev/null +++ b/php/phpdoc/packages/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    Index of /php/phpdoc/packages

                                                                                                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                    + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    ..

                                                                                                                                                                                                                                                                                                    .. +
                                                                                                                                                                                                                                                                                                    -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    Application.html

                                                                                                                                                                                                                                                                                                    Application.html +
                                                                                                                                                                                                                                                                                                    25 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    default.html

                                                                                                                                                                                                                                                                                                    default.html +
                                                                                                                                                                                                                                                                                                    12 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                    + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                    + + diff --git a/php/phpdoc/reports/deprecated.html b/php/phpdoc/reports/deprecated.html new file mode 100644 index 00000000000..68d5939d3ad --- /dev/null +++ b/php/phpdoc/reports/deprecated.html @@ -0,0 +1,148 @@ + + + + + phpDocumentor » Deprecated elements + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    phpDocumentor

                                                                                                                                                                                                                                                                                                    + + + + + +
                                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    + + + + +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    Deprecated

                                                                                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                                                                                    + No deprecated elements have been found in this project. +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    Search results

                                                                                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                                                      + + + + + + + + diff --git a/php/phpdoc/reports/errors.html b/php/phpdoc/reports/errors.html new file mode 100644 index 00000000000..5c6f031851b --- /dev/null +++ b/php/phpdoc/reports/errors.html @@ -0,0 +1,176 @@ + + + + + phpDocumentor » Compilation errors + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                                      phpDocumentor

                                                                                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      + + + + +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                                      Errors

                                                                                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                                                                                      Table of Contents

                                                                                                                                                                                                                                                                                                      + + + + + +
                                                                                                                                                                                                                                                                                                      src/sql/MydbOptions.php2
                                                                                                                                                                                                                                                                                                      + + + +

                                                                                                                                                                                                                                                                                                      MydbOptions.php

                                                                                                                                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                      TypeLineDescription
                                                                                                                                                                                                                                                                                                      ERROR94Tag "see" with body "@see mysqlnd.net_cmd_buffer_size" has error "\sql\mysqlnd.net_cmd_buffer_size" is not a valid Fqsen.
                                                                                                                                                                                                                                                                                                      ERROR116Tag "see" with body "@see mysqlnd.net_read_buffer_size" has error "\sql\mysqlnd.net_read_buffer_size" is not a valid Fqsen.
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                                                                                      Search results

                                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                                                        + + + + + + + + diff --git a/php/phpdoc/reports/index.html b/php/phpdoc/reports/index.html new file mode 100644 index 00000000000..70ba86018e1 --- /dev/null +++ b/php/phpdoc/reports/index.html @@ -0,0 +1,70 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        Index of /php/phpdoc/reports

                                                                                                                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                        + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        ..

                                                                                                                                                                                                                                                                                                        .. +
                                                                                                                                                                                                                                                                                                        -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        deprecated.html

                                                                                                                                                                                                                                                                                                        deprecated.html +
                                                                                                                                                                                                                                                                                                        7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        errors.html

                                                                                                                                                                                                                                                                                                        errors.html +
                                                                                                                                                                                                                                                                                                        9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        markers.html

                                                                                                                                                                                                                                                                                                        markers.html +
                                                                                                                                                                                                                                                                                                        10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                        + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                        + + diff --git a/php/phpdoc/reports/markers.html b/php/phpdoc/reports/markers.html new file mode 100644 index 00000000000..1a7ca79e618 --- /dev/null +++ b/php/phpdoc/reports/markers.html @@ -0,0 +1,202 @@ + + + + + phpDocumentor » Markers + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        phpDocumentor

                                                                                                                                                                                                                                                                                                        + + + + + +
                                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        + + + + +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        Markers

                                                                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                                                                        Table of Contents

                                                                                                                                                                                                                                                                                                        + + + + + + + + + +
                                                                                                                                                                                                                                                                                                        src/sql/Mydb.php2
                                                                                                                                                                                                                                                                                                        src/sql/MydbQueryBuilder.php2
                                                                                                                                                                                                                                                                                                        + + +

                                                                                                                                                                                                                                                                                                        Mydb.php

                                                                                                                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                        TypeLineDescription
                                                                                                                                                                                                                                                                                                        TODO225reduce NPathComplexity
                                                                                                                                                                                                                                                                                                        TODO587reduce NPathComplexity
                                                                                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                                                                                        MydbQueryBuilder.php

                                                                                                                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                        TypeLineDescription
                                                                                                                                                                                                                                                                                                        TODO214will this need real db connection to escape()? add test for all possible cases
                                                                                                                                                                                                                                                                                                        TODO340reduce NPathComplexity
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        Search results

                                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          + + + + + + + + diff --git a/php/phpmd/index.html b/php/phpmd/index.html new file mode 100644 index 00000000000..8928d04eed9 --- /dev/null +++ b/php/phpmd/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpmd

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpmd.txt

                                                                                                                                                                                                                                                                                                          phpmd.txt +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpmd/phpmd.txt b/php/phpmd/phpmd.txt new file mode 100644 index 00000000000..edee88e415f --- /dev/null +++ b/php/phpmd/phpmd.txt @@ -0,0 +1,4 @@ + +Found 0 violations and 0 errors in 315ms + +No mess detected diff --git a/php/phpstan/index.html b/php/phpstan/index.html new file mode 100644 index 00000000000..8171f803526 --- /dev/null +++ b/php/phpstan/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpstan

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpstan.txt

                                                                                                                                                                                                                                                                                                          phpstan.txt +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpstan/phpstan.txt b/php/phpstan/phpstan.txt new file mode 100644 index 00000000000..d889697879a --- /dev/null +++ b/php/phpstan/phpstan.txt @@ -0,0 +1,10 @@ +[OK] No errors + + + [OK] No errors + + + [OK] No errors + + + [OK] No errors diff --git a/php/phpunit/html/Mydb.php.html b/php/phpunit/html/Mydb.php.html new file mode 100644 index 00000000000..d362f83f161 --- /dev/null +++ b/php/phpunit/html/Mydb.php.html @@ -0,0 +1,1427 @@ + + + + + Code Coverage for /app/src/sql/Mydb.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          205 / 205
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          Mydb
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          205 / 205
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          95
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           __destruct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           open
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           query
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          6
                                                                                                                                                                                                                                                                                                           command
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getEnumValues
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          16 / 16
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          6
                                                                                                                                                                                                                                                                                                           escape
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getPrimaryKeys
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          8 / 8
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          7
                                                                                                                                                                                                                                                                                                           beginTransaction
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          9 / 9
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          5
                                                                                                                                                                                                                                                                                                           rollbackTransaction
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           commitTransaction
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           close
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          17 / 17
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          10
                                                                                                                                                                                                                                                                                                           replace
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           insert
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           select
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           delete
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           update
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           deleteWhere
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           updateWhere
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           updateWhereMany
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           insertMany
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           replaceOne
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           insertOne
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           sendClientRequest
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           readServerResponse
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          14 / 14
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          6
                                                                                                                                                                                                                                                                                                           onWarning
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           onError
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           connect
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          52 / 52
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use Psr\Log\LoggerInterface;
                                                                                                                                                                                                                                                                                                          19use sql\MydbException\ConnectDefaultsException;
                                                                                                                                                                                                                                                                                                          20use sql\MydbException\ConnectException;
                                                                                                                                                                                                                                                                                                          21use sql\MydbException\DeleteException;
                                                                                                                                                                                                                                                                                                          22use sql\MydbException\DisconnectException;
                                                                                                                                                                                                                                                                                                          23use sql\MydbException\InternalException;
                                                                                                                                                                                                                                                                                                          24use sql\MydbException\ServerGoneException;
                                                                                                                                                                                                                                                                                                          25use sql\MydbException\TerminationSignalException;
                                                                                                                                                                                                                                                                                                          26use sql\MydbException\TransactionAutocommitException;
                                                                                                                                                                                                                                                                                                          27use sql\MydbException\TransactionBeginReadonlyException;
                                                                                                                                                                                                                                                                                                          28use sql\MydbException\TransactionBeginReadwriteException;
                                                                                                                                                                                                                                                                                                          29use sql\MydbException\TransactionCommitException;
                                                                                                                                                                                                                                                                                                          30use sql\MydbException\TransactionIsolationException;
                                                                                                                                                                                                                                                                                                          31use sql\MydbException\TransactionRollbackException;
                                                                                                                                                                                                                                                                                                          32use sql\MydbException\UpdateException;
                                                                                                                                                                                                                                                                                                          33use sql\MydbInterface\RemoteResourceInterface;
                                                                                                                                                                                                                                                                                                          34use sql\MydbListener\InternalListener;
                                                                                                                                                                                                                                                                                                          35use sql\MydbMysqli\MydbMysqliResultInterface;
                                                                                                                                                                                                                                                                                                          36use Throwable;
                                                                                                                                                                                                                                                                                                          37use function array_map;
                                                                                                                                                                                                                                                                                                          38use function count;
                                                                                                                                                                                                                                                                                                          39use function explode;
                                                                                                                                                                                                                                                                                                          40use function implode;
                                                                                                                                                                                                                                                                                                          41use function preg_replace;
                                                                                                                                                                                                                                                                                                          42use function sprintf;
                                                                                                                                                                                                                                                                                                          43use function stripos;
                                                                                                                                                                                                                                                                                                          44use function strpos;
                                                                                                                                                                                                                                                                                                          45use function substr;
                                                                                                                                                                                                                                                                                                          46
                                                                                                                                                                                                                                                                                                          47/**
                                                                                                                                                                                                                                                                                                          48 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          49 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          50 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          51 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
                                                                                                                                                                                                                                                                                                          52 */
                                                                                                                                                                                                                                                                                                          53class Mydb implements MydbInterface, RemoteResourceInterface
                                                                                                                                                                                                                                                                                                          54{
                                                                                                                                                                                                                                                                                                          55
                                                                                                                                                                                                                                                                                                          56    protected MydbMysqliInterface $mysqli;
                                                                                                                                                                                                                                                                                                          57
                                                                                                                                                                                                                                                                                                          58    protected MydbOptionsInterface $options;
                                                                                                                                                                                                                                                                                                          59
                                                                                                                                                                                                                                                                                                          60    protected MydbEnvironmentInterface $environment;
                                                                                                                                                                                                                                                                                                          61
                                                                                                                                                                                                                                                                                                          62    protected MydbQueryBuilderInterface $queryBuilder;
                                                                                                                                                                                                                                                                                                          63
                                                                                                                                                                                                                                                                                                          64    protected MydbListenerInterface $eventListener;
                                                                                                                                                                                                                                                                                                          65
                                                                                                                                                                                                                                                                                                          66    protected bool $terminating = false;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    public function __construct(
                                                                                                                                                                                                                                                                                                          69        protected MydbCredentialsInterface $credentials,
                                                                                                                                                                                                                                                                                                          70        protected LoggerInterface $logger,
                                                                                                                                                                                                                                                                                                          71        ?MydbOptionsInterface $options = null,
                                                                                                                                                                                                                                                                                                          72        ?MydbMysqliInterface $mysqli = null,
                                                                                                                                                                                                                                                                                                          73        ?MydbEnvironmentInterface $environment = null,
                                                                                                                                                                                                                                                                                                          74        ?MydbQueryBuilderInterface $queryBuilder = null,
                                                                                                                                                                                                                                                                                                          75        ?MydbListenerInterface $eventListener = null,
                                                                                                                                                                                                                                                                                                          76    ) {
                                                                                                                                                                                                                                                                                                          77        $this->options = $options ?? new MydbOptions();
                                                                                                                                                                                                                                                                                                          78        $this->mysqli = $mysqli ?? new MydbMysqli();
                                                                                                                                                                                                                                                                                                          79        $this->environment = $environment ?? new MydbEnvironment();
                                                                                                                                                                                                                                                                                                          80        $this->queryBuilder = $queryBuilder ?? new MydbQueryBuilder($this->mysqli);
                                                                                                                                                                                                                                                                                                          81        $this->eventListener = $eventListener ?? new InternalListener($logger);
                                                                                                                                                                                                                                                                                                          82    }
                                                                                                                                                                                                                                                                                                          83
                                                                                                                                                                                                                                                                                                          84    /**
                                                                                                                                                                                                                                                                                                          85     * A destructor may be called as soon as there are no references to an object.
                                                                                                                                                                                                                                                                                                          86     *
                                                                                                                                                                                                                                                                                                          87     * @see http://php.net/manual/en/mysqli.close.php
                                                                                                                                                                                                                                                                                                          88     * @see http://php.net/manual/en/mysqli.ping.php (MysqlND not supports reconnect)
                                                                                                                                                                                                                                                                                                          89     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          90     */
                                                                                                                                                                                                                                                                                                          91    public function __destruct()
                                                                                                                                                                                                                                                                                                          92    {
                                                                                                                                                                                                                                                                                                          93        $this->terminating = true;
                                                                                                                                                                                                                                                                                                          94        $this->close();
                                                                                                                                                                                                                                                                                                          95    }
                                                                                                                                                                                                                                                                                                          96
                                                                                                                                                                                                                                                                                                          97    /**
                                                                                                                                                                                                                                                                                                          98     * Open connection to remote server
                                                                                                                                                                                                                                                                                                          99     * @param int $retry retry failed connection attempts
                                                                                                                                                                                                                                                                                                          100     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          101     */
                                                                                                                                                                                                                                                                                                          102    public function open(int $retry = 0): bool
                                                                                                                                                                                                                                                                                                          103    {
                                                                                                                                                                                                                                                                                                          104        return $this->connect($retry);
                                                                                                                                                                                                                                                                                                          105    }
                                                                                                                                                                                                                                                                                                          106
                                                                                                                                                                                                                                                                                                          107    /**
                                                                                                                                                                                                                                                                                                          108     * Execute raw SQL query and return results
                                                                                                                                                                                                                                                                                                          109     *
                                                                                                                                                                                                                                                                                                          110     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive
                                                                                                                                                                                                                                                                                                          111     * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint
                                                                                                                                                                                                                                                                                                          112     *
                                                                                                                                                                                                                                                                                                          113     * @psalm-return array<array-key, array<array-key, (float|int|string|null)>>|null
                                                                                                                                                                                                                                                                                                          114     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          115     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          116     */
                                                                                                                                                                                                                                                                                                          117    public function query(string $query): ?array
                                                                                                                                                                                                                                                                                                          118    {
                                                                                                                                                                                                                                                                                                          119
                                                                                                                                                                                                                                                                                                          120        if (!$this->connect()) {
                                                                                                                                                                                                                                                                                                          121            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          122        }
                                                                                                                                                                                                                                                                                                          123
                                                                                                                                                                                                                                                                                                          124        $result = $this->sendClientRequest($query);
                                                                                                                                                                                                                                                                                                          125        /**
                                                                                                                                                                                                                                                                                                          126         * We should always read server response, no matter whether sendClientRequest result
                                                                                                                                                                                                                                                                                                          127         */
                                                                                                                                                                                                                                                                                                          128        $packet = $this->readServerResponse($query);
                                                                                                                                                                                                                                                                                                          129
                                                                                                                                                                                                                                                                                                          130        if (false === $result || null === $packet) {
                                                                                                                                                                                                                                                                                                          131            return null;
                                                                                                                                                                                                                                                                                                          132        }
                                                                                                                                                                                                                                                                                                          133
                                                                                                                                                                                                                                                                                                          134        if ($packet->getFieldCount() > 0) {
                                                                                                                                                                                                                                                                                                          135            $payload = $packet->getResult();
                                                                                                                                                                                                                                                                                                          136            if (null === $payload) {
                                                                                                                                                                                                                                                                                                          137                $this->onError(
                                                                                                                                                                                                                                                                                                          138                    new InternalException($packet->getError() ?? 'Reading of the result set failed'),
                                                                                                                                                                                                                                                                                                          139                    $query
                                                                                                                                                                                                                                                                                                          140                );
                                                                                                                                                                                                                                                                                                          141            }
                                                                                                                                                                                                                                                                                                          142
                                                                                                                                                                                                                                                                                                          143            /**
                                                                                                                                                                                                                                                                                                          144             * @var array<array-key, array<array-key, (float|int|string|null)>> $payload
                                                                                                                                                                                                                                                                                                          145             */
                                                                                                                                                                                                                                                                                                          146            return $payload;
                                                                                                                                                                                                                                                                                                          147        }
                                                                                                                                                                                                                                                                                                          148
                                                                                                                                                                                                                                                                                                          149        return null;
                                                                                                                                                                                                                                                                                                          150    }
                                                                                                                                                                                                                                                                                                          151
                                                                                                                                                                                                                                                                                                          152    /**
                                                                                                                                                                                                                                                                                                          153     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive
                                                                                                                                                                                                                                                                                                          154     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          155     */
                                                                                                                                                                                                                                                                                                          156    public function command(string $query): bool
                                                                                                                                                                                                                                                                                                          157    {
                                                                                                                                                                                                                                                                                                          158        if (!$this->connect()) {
                                                                                                                                                                                                                                                                                                          159            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          160        }
                                                                                                                                                                                                                                                                                                          161
                                                                                                                                                                                                                                                                                                          162
                                                                                                                                                                                                                                                                                                          163        $result = $this->sendClientRequest($query);
                                                                                                                                                                                                                                                                                                          164
                                                                                                                                                                                                                                                                                                          165        if (false === $result) {
                                                                                                                                                                                                                                                                                                          166            return false;
                                                                                                                                                                                                                                                                                                          167        }
                                                                                                                                                                                                                                                                                                          168
                                                                                                                                                                                                                                                                                                          169        $packet = $this->readServerResponse($query);
                                                                                                                                                                                                                                                                                                          170
                                                                                                                                                                                                                                                                                                          171        return null !== $packet;
                                                                                                                                                                                                                                                                                                          172    }
                                                                                                                                                                                                                                                                                                          173
                                                                                                                                                                                                                                                                                                          174    /**
                                                                                                                                                                                                                                                                                                          175     * @return array<string>
                                                                                                                                                                                                                                                                                                          176     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          177     * @psalm-return list<string>
                                                                                                                                                                                                                                                                                                          178     */
                                                                                                                                                                                                                                                                                                          179    public function getEnumValues(string $table, string $column): array
                                                                                                                                                                                                                                                                                                          180    {
                                                                                                                                                                                                                                                                                                          181        $query = $this->queryBuilder->showColumnsLike($table, $column);
                                                                                                                                                                                                                                                                                                          182
                                                                                                                                                                                                                                                                                                          183        $resultArray = $this->query($query);
                                                                                                                                                                                                                                                                                                          184        $result = isset($resultArray[0]['Type'])
                                                                                                                                                                                                                                                                                                          185                ? (string) $resultArray[0]['Type']
                                                                                                                                                                                                                                                                                                          186                : null;
                                                                                                                                                                                                                                                                                                          187
                                                                                                                                                                                                                                                                                                          188        $match = false;
                                                                                                                                                                                                                                                                                                          189        $types = ['enum', 'set'];
                                                                                                                                                                                                                                                                                                          190        foreach ($types as $type) {
                                                                                                                                                                                                                                                                                                          191            if (0 === stripos((string)$result, $type . '(')) {
                                                                                                                                                                                                                                                                                                          192                $match = $type;
                                                                                                                                                                                                                                                                                                          193
                                                                                                                                                                                                                                                                                                          194                break;
                                                                                                                                                                                                                                                                                                          195            }
                                                                                                                                                                                                                                                                                                          196        }
                                                                                                                                                                                                                                                                                                          197
                                                                                                                                                                                                                                                                                                          198        if (false === $match) {
                                                                                                                                                                                                                                                                                                          199            $this->onError(new MydbException("Column not of type '" . implode(',', $types) . "'"));
                                                                                                                                                                                                                                                                                                          200        }
                                                                                                                                                                                                                                                                                                          201
                                                                                                                                                                                                                                                                                                          202        $input = substr((string) $result, (int) strpos((string) $result, '(') + 1, -1);
                                                                                                                                                                                                                                                                                                          203
                                                                                                                                                                                                                                                                                                          204        // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          205        /**
                                                                                                                                                                                                                                                                                                          206         * @psalm-suppress DocblockTypeContradiction
                                                                                                                                                                                                                                                                                                          207         */
                                                                                                                                                                                                                                                                                                          208        if ('' === $input) {
                                                                                                                                                                                                                                                                                                          209            throw new MydbException();
                                                                                                                                                                                                                                                                                                          210        }
                                                                                                                                                                                                                                                                                                          211        // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          212
                                                                                                                                                                                                                                                                                                          213        $values = explode(',', preg_replace("/'/", '', $input));
                                                                                                                                                                                                                                                                                                          214
                                                                                                                                                                                                                                                                                                          215        return array_map('strval', $values);
                                                                                                                                                                                                                                                                                                          216    }
                                                                                                                                                                                                                                                                                                          217
                                                                                                                                                                                                                                                                                                          218    /**
                                                                                                                                                                                                                                                                                                          219     * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped
                                                                                                                                                                                                                                                                                                          220     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          221     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          222     * @SuppressWarnings(PHPMD.NPathComplexity)
                                                                                                                                                                                                                                                                                                          223     * @todo reduce NPathComplexity
                                                                                                                                                                                                                                                                                                          224     */
                                                                                                                                                                                                                                                                                                          225    public function escape($unescaped, string $quote = "'"): string
                                                                                                                                                                                                                                                                                                          226    {
                                                                                                                                                                                                                                                                                                          227        if (!$this->connect()) {
                                                                                                                                                                                                                                                                                                          228            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          229        }
                                                                                                                                                                                                                                                                                                          230
                                                                                                                                                                                                                                                                                                          231        return $this->queryBuilder->escape($unescaped, $quote);
                                                                                                                                                                                                                                                                                                          232    }
                                                                                                                                                                                                                                                                                                          233
                                                                                                                                                                                                                                                                                                          234    /**
                                                                                                                                                                                                                                                                                                          235     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          236     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          237     * @return ?array<string>
                                                                                                                                                                                                                                                                                                          238     */
                                                                                                                                                                                                                                                                                                          239    public function getPrimaryKeys(string $table): ?array
                                                                                                                                                                                                                                                                                                          240    {
                                                                                                                                                                                                                                                                                                          241        $result = $this->query($this->queryBuilder->showKeys($table));
                                                                                                                                                                                                                                                                                                          242
                                                                                                                                                                                                                                                                                                          243        if (null === $result) {
                                                                                                                                                                                                                                                                                                          244            return null;
                                                                                                                                                                                                                                                                                                          245        }
                                                                                                                                                                                                                                                                                                          246
                                                                                                                                                                                                                                                                                                          247        $keys = [];
                                                                                                                                                                                                                                                                                                          248        foreach ($result as $row) {
                                                                                                                                                                                                                                                                                                          249            if (isset($row['Key_name']) && 'PRIMARY' === $row['Key_name'] && isset($row['Column_name'])) {
                                                                                                                                                                                                                                                                                                          250                $keys[] = (string) $row['Column_name'];
                                                                                                                                                                                                                                                                                                          251            }
                                                                                                                                                                                                                                                                                                          252        }
                                                                                                                                                                                                                                                                                                          253
                                                                                                                                                                                                                                                                                                          254        return [] !== $keys ? $keys : null;
                                                                                                                                                                                                                                                                                                          255    }
                                                                                                                                                                                                                                                                                                          256
                                                                                                                                                                                                                                                                                                          257    /**
                                                                                                                                                                                                                                                                                                          258     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          259     */
                                                                                                                                                                                                                                                                                                          260    public function beginTransaction(): void
                                                                                                                                                                                                                                                                                                          261    {
                                                                                                                                                                                                                                                                                                          262        if (!$this->connect()) {
                                                                                                                                                                                                                                                                                                          263            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          264        }
                                                                                                                                                                                                                                                                                                          265
                                                                                                                                                                                                                                                                                                          266        if ($this->options->isReadonly()) {
                                                                                                                                                                                                                                                                                                          267            if ($this->mysqli->beginTransactionReadonly()) {
                                                                                                                                                                                                                                                                                                          268                return;
                                                                                                                                                                                                                                                                                                          269            }
                                                                                                                                                                                                                                                                                                          270            $this->onError(new TransactionBeginReadonlyException());
                                                                                                                                                                                                                                                                                                          271        } else {
                                                                                                                                                                                                                                                                                                          272            if ($this->mysqli->beginTransactionReadwrite()) {
                                                                                                                                                                                                                                                                                                          273                return;
                                                                                                                                                                                                                                                                                                          274            }
                                                                                                                                                                                                                                                                                                          275            $this->onError(new TransactionBeginReadwriteException());
                                                                                                                                                                                                                                                                                                          276        }
                                                                                                                                                                                                                                                                                                          277    }
                                                                                                                                                                                                                                                                                                          278
                                                                                                                                                                                                                                                                                                          279    /**
                                                                                                                                                                                                                                                                                                          280     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          281     */
                                                                                                                                                                                                                                                                                                          282    public function rollbackTransaction(): void
                                                                                                                                                                                                                                                                                                          283    {
                                                                                                                                                                                                                                                                                                          284        if (!$this->mysqli->isConnected()) {
                                                                                                                                                                                                                                                                                                          285            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          286        }
                                                                                                                                                                                                                                                                                                          287
                                                                                                                                                                                                                                                                                                          288        if ($this->mysqli->rollback()) {
                                                                                                                                                                                                                                                                                                          289            return;
                                                                                                                                                                                                                                                                                                          290        }
                                                                                                                                                                                                                                                                                                          291
                                                                                                                                                                                                                                                                                                          292        $this->onError(new TransactionRollbackException());
                                                                                                                                                                                                                                                                                                          293    }
                                                                                                                                                                                                                                                                                                          294
                                                                                                                                                                                                                                                                                                          295    /**
                                                                                                                                                                                                                                                                                                          296     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          297     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          298     */
                                                                                                                                                                                                                                                                                                          299    public function commitTransaction(): void
                                                                                                                                                                                                                                                                                                          300    {
                                                                                                                                                                                                                                                                                                          301        if (!$this->mysqli->isConnected()) {
                                                                                                                                                                                                                                                                                                          302            throw new ConnectException();
                                                                                                                                                                                                                                                                                                          303        }
                                                                                                                                                                                                                                                                                                          304
                                                                                                                                                                                                                                                                                                          305        if ($this->mysqli->commit()) {
                                                                                                                                                                                                                                                                                                          306            return;
                                                                                                                                                                                                                                                                                                          307        }
                                                                                                                                                                                                                                                                                                          308
                                                                                                                                                                                                                                                                                                          309        $this->onError(new TransactionCommitException());
                                                                                                                                                                                                                                                                                                          310    }
                                                                                                                                                                                                                                                                                                          311
                                                                                                                                                                                                                                                                                                          312    /**
                                                                                                                                                                                                                                                                                                          313     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          314     */
                                                                                                                                                                                                                                                                                                          315    public function close(): void
                                                                                                                                                                                                                                                                                                          316    {
                                                                                                                                                                                                                                                                                                          317        if (false === $this->mysqli->isConnected()) {
                                                                                                                                                                                                                                                                                                          318            return;
                                                                                                                                                                                                                                                                                                          319        }
                                                                                                                                                                                                                                                                                                          320
                                                                                                                                                                                                                                                                                                          321        try {
                                                                                                                                                                                                                                                                                                          322            /**
                                                                                                                                                                                                                                                                                                          323             * No autocommit
                                                                                                                                                                                                                                                                                                          324             * No transaction
                                                                                                                                                                                                                                                                                                          325             *
                                                                                                                                                                                                                                                                                                          326             * Default: commit all commands if transaction was NOT open
                                                                                                                                                                                                                                                                                                          327             */
                                                                                                                                                                                                                                                                                                          328            if (false === $this->options->isAutocommit() && false === $this->mysqli->isTransactionOpen()) {
                                                                                                                                                                                                                                                                                                          329                /**
                                                                                                                                                                                                                                                                                                          330                 * RELEASE clause causes the server to disconnect the current client session
                                                                                                                                                                                                                                                                                                          331                 * after terminating the current transaction.
                                                                                                                                                                                                                                                                                                          332                 */
                                                                                                                                                                                                                                                                                                          333                $commit = $this->options->isPersistent()
                                                                                                                                                                                                                                                                                                          334                    ? $this->mysqli->commit()
                                                                                                                                                                                                                                                                                                          335                    : $this->mysqli->commitAndRelease();
                                                                                                                                                                                                                                                                                                          336
                                                                                                                                                                                                                                                                                                          337                if (false === $commit) {
                                                                                                                                                                                                                                                                                                          338                    throw new TransactionCommitException();
                                                                                                                                                                                                                                                                                                          339                }
                                                                                                                                                                                                                                                                                                          340            }
                                                                                                                                                                                                                                                                                                          341
                                                                                                                                                                                                                                                                                                          342            /**
                                                                                                                                                                                                                                                                                                          343             * Explicitly closing open connections and freeing result sets is optional but recommended
                                                                                                                                                                                                                                                                                                          344             * Server already closed connection from server-side
                                                                                                                                                                                                                                                                                                          345             */
                                                                                                                                                                                                                                                                                                          346            if (false === $this->mysqli->close()) {
                                                                                                                                                                                                                                                                                                          347                throw new DisconnectException();
                                                                                                                                                                                                                                                                                                          348            }
                                                                                                                                                                                                                                                                                                          349        } catch (MydbException $e) {
                                                                                                                                                                                                                                                                                                          350            $this->onError($e);
                                                                                                                                                                                                                                                                                                          351        } catch (Throwable $e) {
                                                                                                                                                                                                                                                                                                          352            $this->onError(new InternalException($e->getMessage()));
                                                                                                                                                                                                                                                                                                          353        }
                                                                                                                                                                                                                                                                                                          354
                                                                                                                                                                                                                                                                                                          355        if ($this->terminating) {
                                                                                                                                                                                                                                                                                                          356            return;
                                                                                                                                                                                                                                                                                                          357        }
                                                                                                                                                                                                                                                                                                          358
                                                                                                                                                                                                                                                                                                          359        $this->environment->gc_collect_cycles();
                                                                                                                                                                                                                                                                                                          360    }
                                                                                                                                                                                                                                                                                                          361
                                                                                                                                                                                                                                                                                                          362    /**
                                                                                                                                                                                                                                                                                                          363     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          364     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          365     */
                                                                                                                                                                                                                                                                                                          366    public function replace(string $query): ?string
                                                                                                                                                                                                                                                                                                          367    {
                                                                                                                                                                                                                                                                                                          368        return $this->insert($query);
                                                                                                                                                                                                                                                                                                          369    }
                                                                                                                                                                                                                                                                                                          370
                                                                                                                                                                                                                                                                                                          371    /**
                                                                                                                                                                                                                                                                                                          372     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          373     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          374     */
                                                                                                                                                                                                                                                                                                          375    public function insert(string $query): ?string
                                                                                                                                                                                                                                                                                                          376    {
                                                                                                                                                                                                                                                                                                          377        if ($this->command($query)) {
                                                                                                                                                                                                                                                                                                          378            return (string) $this->mysqli->getInsertId();
                                                                                                                                                                                                                                                                                                          379        }
                                                                                                                                                                                                                                                                                                          380
                                                                                                                                                                                                                                                                                                          381        return null;
                                                                                                                                                                                                                                                                                                          382    }
                                                                                                                                                                                                                                                                                                          383
                                                                                                                                                                                                                                                                                                          384    /**
                                                                                                                                                                                                                                                                                                          385     * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint
                                                                                                                                                                                                                                                                                                          386     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          387     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          388     */
                                                                                                                                                                                                                                                                                                          389    public function select(string $query): ?array
                                                                                                                                                                                                                                                                                                          390    {
                                                                                                                                                                                                                                                                                                          391        return $this->query($query);
                                                                                                                                                                                                                                                                                                          392    }
                                                                                                                                                                                                                                                                                                          393
                                                                                                                                                                                                                                                                                                          394    /**
                                                                                                                                                                                                                                                                                                          395     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          396     */
                                                                                                                                                                                                                                                                                                          397    public function delete(string $query): ?int
                                                                                                                                                                                                                                                                                                          398    {
                                                                                                                                                                                                                                                                                                          399        if ($this->command($query)) {
                                                                                                                                                                                                                                                                                                          400            $rows = $this->mysqli->getAffectedRows();
                                                                                                                                                                                                                                                                                                          401            if (null === $rows) {
                                                                                                                                                                                                                                                                                                          402                $this->onError(new DeleteException(), $query);
                                                                                                                                                                                                                                                                                                          403            }
                                                                                                                                                                                                                                                                                                          404
                                                                                                                                                                                                                                                                                                          405            return $rows;
                                                                                                                                                                                                                                                                                                          406        }
                                                                                                                                                                                                                                                                                                          407
                                                                                                                                                                                                                                                                                                          408        return null;
                                                                                                                                                                                                                                                                                                          409    }
                                                                                                                                                                                                                                                                                                          410
                                                                                                                                                                                                                                                                                                          411    /**
                                                                                                                                                                                                                                                                                                          412     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          413     */
                                                                                                                                                                                                                                                                                                          414    public function update(string $query): ?int
                                                                                                                                                                                                                                                                                                          415    {
                                                                                                                                                                                                                                                                                                          416        if ($this->command($query)) {
                                                                                                                                                                                                                                                                                                          417            $rows = $this->mysqli->getAffectedRows();
                                                                                                                                                                                                                                                                                                          418            if (null === $rows) {
                                                                                                                                                                                                                                                                                                          419                $this->onError(new UpdateException(), $query);
                                                                                                                                                                                                                                                                                                          420            }
                                                                                                                                                                                                                                                                                                          421
                                                                                                                                                                                                                                                                                                          422            return $rows;
                                                                                                                                                                                                                                                                                                          423        }
                                                                                                                                                                                                                                                                                                          424
                                                                                                                                                                                                                                                                                                          425        return null;
                                                                                                                                                                                                                                                                                                          426    }
                                                                                                                                                                                                                                                                                                          427
                                                                                                                                                                                                                                                                                                          428    /**
                                                                                                                                                                                                                                                                                                          429     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          430     */
                                                                                                                                                                                                                                                                                                          431    public function deleteWhere(array $whereFields, string $table, array $whereNotFields = []): ?int
                                                                                                                                                                                                                                                                                                          432    {
                                                                                                                                                                                                                                                                                                          433        $query = $this->queryBuilder->buildDeleteWhere($table, $whereFields, $whereNotFields);
                                                                                                                                                                                                                                                                                                          434        if (null === $query) {
                                                                                                                                                                                                                                                                                                          435            return null;
                                                                                                                                                                                                                                                                                                          436        }
                                                                                                                                                                                                                                                                                                          437
                                                                                                                                                                                                                                                                                                          438        return $this->delete($query);
                                                                                                                                                                                                                                                                                                          439    }
                                                                                                                                                                                                                                                                                                          440
                                                                                                                                                                                                                                                                                                          441    /**
                                                                                                                                                                                                                                                                                                          442     * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update
                                                                                                                                                                                                                                                                                                          443     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          444     */
                                                                                                                                                                                                                                                                                                          445    public function updateWhere(array $update, array $whereFields, string $table, array $whereNotFields = []): ?int
                                                                                                                                                                                                                                                                                                          446    {
                                                                                                                                                                                                                                                                                                          447        $query = $this->queryBuilder->buildUpdateWhere($update, $whereFields, $table, $whereNotFields);
                                                                                                                                                                                                                                                                                                          448
                                                                                                                                                                                                                                                                                                          449        if ('' !== $query && null !== $query) {
                                                                                                                                                                                                                                                                                                          450            return $this->update($query);
                                                                                                                                                                                                                                                                                                          451        }
                                                                                                                                                                                                                                                                                                          452
                                                                                                                                                                                                                                                                                                          453        return null;
                                                                                                                                                                                                                                                                                                          454    }
                                                                                                                                                                                                                                                                                                          455
                                                                                                                                                                                                                                                                                                          456    /**
                                                                                                                                                                                                                                                                                                          457     * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']]
                                                                                                                                                                                                                                                                                                          458     * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']]
                                                                                                                                                                                                                                                                                                          459     * @param string $table 'mytable'
                                                                                                                                                                                                                                                                                                          460     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          461     */
                                                                                                                                                                                                                                                                                                          462    public function updateWhereMany(array $columnSetWhere, array $where, string $table): void
                                                                                                                                                                                                                                                                                                          463    {
                                                                                                                                                                                                                                                                                                          464        $sql = $this->queryBuilder->buildUpdateWhereMany($columnSetWhere, $where, $table);
                                                                                                                                                                                                                                                                                                          465        $this->update($sql);
                                                                                                                                                                                                                                                                                                          466    }
                                                                                                                                                                                                                                                                                                          467
                                                                                                                                                                                                                                                                                                          468    /**
                                                                                                                                                                                                                                                                                                          469     * @throws \sql\MydbException\ConnectException
                                                                                                                                                                                                                                                                                                          470     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          471     * @psalm-param array<array-key, array<array-key, (float|int|string|\sql\MydbExpressionInterface|null)>> $data
                                                                                                                                                                                                                                                                                                          472     * @param array<string> $cols
                                                                                                                                                                                                                                                                                                          473     */
                                                                                                                                                                                                                                                                                                          474    public function insertMany(
                                                                                                                                                                                                                                                                                                          475        array $data,
                                                                                                                                                                                                                                                                                                          476        array $cols,
                                                                                                                                                                                                                                                                                                          477        string $table,
                                                                                                                                                                                                                                                                                                          478        bool $ignore = false,
                                                                                                                                                                                                                                                                                                          479        string $onDuplicateSql = '',
                                                                                                                                                                                                                                                                                                          480    ): void {
                                                                                                                                                                                                                                                                                                          481        $sql = $this->queryBuilder->buildInsertMany($data, $cols, $table, $ignore, $onDuplicateSql);
                                                                                                                                                                                                                                                                                                          482        $this->insert($sql);
                                                                                                                                                                                                                                                                                                          483    }
                                                                                                                                                                                                                                                                                                          484
                                                                                                                                                                                                                                                                                                          485    /**
                                                                                                                                                                                                                                                                                                          486     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          487     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          488     */
                                                                                                                                                                                                                                                                                                          489    public function replaceOne(array $data, string $table): ?string
                                                                                                                                                                                                                                                                                                          490    {
                                                                                                                                                                                                                                                                                                          491        $query = $this->queryBuilder->insertOne($data, $table, MydbQueryBuilderInterface::SQL_REPLACE);
                                                                                                                                                                                                                                                                                                          492
                                                                                                                                                                                                                                                                                                          493        return $this->replace($query);
                                                                                                                                                                                                                                                                                                          494    }
                                                                                                                                                                                                                                                                                                          495
                                                                                                                                                                                                                                                                                                          496    /**
                                                                                                                                                                                                                                                                                                          497     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          498     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          499     */
                                                                                                                                                                                                                                                                                                          500    public function insertOne(array $data, string $table): ?string
                                                                                                                                                                                                                                                                                                          501    {
                                                                                                                                                                                                                                                                                                          502        $query = $this->queryBuilder->insertOne($data, $table, MydbQueryBuilderInterface::SQL_INSERT);
                                                                                                                                                                                                                                                                                                          503
                                                                                                                                                                                                                                                                                                          504        return $this->insert($query);
                                                                                                                                                                                                                                                                                                          505    }
                                                                                                                                                                                                                                                                                                          506
                                                                                                                                                                                                                                                                                                          507    /**
                                                                                                                                                                                                                                                                                                          508     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          509     * @throws \sql\MydbException\TerminationSignalException
                                                                                                                                                                                                                                                                                                          510     * @throws \sql\MydbException\EventException
                                                                                                                                                                                                                                                                                                          511     */
                                                                                                                                                                                                                                                                                                          512    protected function sendClientRequest(string $query): bool
                                                                                                                                                                                                                                                                                                          513    {
                                                                                                                                                                                                                                                                                                          514        $this->environment->startSignalsTrap();
                                                                                                                                                                                                                                                                                                          515        $this->environment->set_error_handler();
                                                                                                                                                                                                                                                                                                          516
                                                                                                                                                                                                                                                                                                          517        (new MydbEvent\InternalQueryBegin($query))->setListeners([$this->eventListener])->notify();
                                                                                                                                                                                                                                                                                                          518        $result = $this->mysqli->realQuery($query);
                                                                                                                                                                                                                                                                                                          519        (new MydbEvent\InternalQueryEnd($query, $result))->setListeners([$this->eventListener])->notify();
                                                                                                                                                                                                                                                                                                          520
                                                                                                                                                                                                                                                                                                          521        $this->environment->restore_error_handler();
                                                                                                                                                                                                                                                                                                          522        $hasPendingSignals = $this->environment->endSignalsTrap();
                                                                                                                                                                                                                                                                                                          523        if (null !== $hasPendingSignals && count($hasPendingSignals) > 0) {
                                                                                                                                                                                                                                                                                                          524            throw new TerminationSignalException();
                                                                                                                                                                                                                                                                                                          525        }
                                                                                                                                                                                                                                                                                                          526
                                                                                                                                                                                                                                                                                                          527        return $result;
                                                                                                                                                                                                                                                                                                          528    }
                                                                                                                                                                                                                                                                                                          529
                                                                                                                                                                                                                                                                                                          530    /**
                                                                                                                                                                                                                                                                                                          531     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          532     */
                                                                                                                                                                                                                                                                                                          533    protected function readServerResponse(string $query): ?MydbMysqliResultInterface
                                                                                                                                                                                                                                                                                                          534    {
                                                                                                                                                                                                                                                                                                          535        $packet = $this->mysqli->readServerResponse($this->environment);
                                                                                                                                                                                                                                                                                                          536        if (null === $packet) {
                                                                                                                                                                                                                                                                                                          537            return null;
                                                                                                                                                                                                                                                                                                          538        }
                                                                                                                                                                                                                                                                                                          539
                                                                                                                                                                                                                                                                                                          540        $warnings = $packet->getWarnings();
                                                                                                                                                                                                                                                                                                          541        if (count($warnings) > 0) {
                                                                                                                                                                                                                                                                                                          542            foreach ($warnings as $warningMessage) {
                                                                                                                                                                                                                                                                                                          543                $this->onWarning($warningMessage, $query);
                                                                                                                                                                                                                                                                                                          544            }
                                                                                                                                                                                                                                                                                                          545        }
                                                                                                                                                                                                                                                                                                          546
                                                                                                                                                                                                                                                                                                          547        $errorMessage = $packet->getError();
                                                                                                                                                                                                                                                                                                          548        if (null !== $errorMessage) {
                                                                                                                                                                                                                                                                                                          549            if ($this->mysqli->isServerGone()) {
                                                                                                                                                                                                                                                                                                          550                /**
                                                                                                                                                                                                                                                                                                          551                 * server closed connection, do close() and ignore result of operation
                                                                                                                                                                                                                                                                                                          552                 */
                                                                                                                                                                                                                                                                                                          553                $this->mysqli->close();
                                                                                                                                                                                                                                                                                                          554                $this->onError(new ServerGoneException($errorMessage), $query);
                                                                                                                                                                                                                                                                                                          555            } else {
                                                                                                                                                                                                                                                                                                          556                $this->onError(new InternalException($errorMessage), $query);
                                                                                                                                                                                                                                                                                                          557            }
                                                                                                                                                                                                                                                                                                          558        }
                                                                                                                                                                                                                                                                                                          559
                                                                                                                                                                                                                                                                                                          560        return $packet;
                                                                                                                                                                                                                                                                                                          561    }
                                                                                                                                                                                                                                                                                                          562
                                                                                                                                                                                                                                                                                                          563    protected function onWarning(string $warningMessage, ?string $sql = null): void
                                                                                                                                                                                                                                                                                                          564    {
                                                                                                                                                                                                                                                                                                          565        $this->logger->warning($warningMessage, ['sql' => $sql]);
                                                                                                                                                                                                                                                                                                          566    }
                                                                                                                                                                                                                                                                                                          567
                                                                                                                                                                                                                                                                                                          568    /**
                                                                                                                                                                                                                                                                                                          569     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          570     */
                                                                                                                                                                                                                                                                                                          571    protected function onError(MydbException $exception, ?string $sql = null): void
                                                                                                                                                                                                                                                                                                          572    {
                                                                                                                                                                                                                                                                                                          573        $this->logger->error($exception->getMessage(), ['sql' => $sql]);
                                                                                                                                                                                                                                                                                                          574
                                                                                                                                                                                                                                                                                                          575        throw $exception;
                                                                                                                                                                                                                                                                                                          576    }
                                                                                                                                                                                                                                                                                                          577
                                                                                                                                                                                                                                                                                                          578    /**
                                                                                                                                                                                                                                                                                                          579     * @throws \sql\MydbException\DisconnectException
                                                                                                                                                                                                                                                                                                          580     * @throws \sql\MydbException\TransactionAutocommitException
                                                                                                                                                                                                                                                                                                          581     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          582     * @throws \sql\MydbException\EventException
                                                                                                                                                                                                                                                                                                          583     * @throws \sql\MydbException
                                                                                                                                                                                                                                                                                                          584     * @SuppressWarnings(PHPMD.NPathComplexity)
                                                                                                                                                                                                                                                                                                          585     * @todo reduce NPathComplexity
                                                                                                                                                                                                                                                                                                          586     */
                                                                                                                                                                                                                                                                                                          587    protected function connect(int $retry = 0): bool
                                                                                                                                                                                                                                                                                                          588    {
                                                                                                                                                                                                                                                                                                          589        if ($this->mysqli->isConnected()) {
                                                                                                                                                                                                                                                                                                          590            return true;
                                                                                                                                                                                                                                                                                                          591        }
                                                                                                                                                                                                                                                                                                          592
                                                                                                                                                                                                                                                                                                          593        $connected = false;
                                                                                                                                                                                                                                                                                                          594        $init0 = $this->mysqli->init();
                                                                                                                                                                                                                                                                                                          595        $init1 = $init0 && $this->mysqli->setTransportOptions($this->options, $this->environment);
                                                                                                                                                                                                                                                                                                          596
                                                                                                                                                                                                                                                                                                          597        if ($init0 && $init1) {
                                                                                                                                                                                                                                                                                                          598            $reportingLevel = $this->environment->error_reporting($this->options->getErrorReporting());
                                                                                                                                                                                                                                                                                                          599
                                                                                                                                                                                                                                                                                                          600            $host = ($this->options->isPersistent() ? 'p:' : '') . $this->credentials->getHost();
                                                                                                                                                                                                                                                                                                          601            $dbname = $this->credentials->getDbname();
                                                                                                                                                                                                                                                                                                          602
                                                                                                                                                                                                                                                                                                          603            (new MydbEvent\InternalConnectionBegin($host, $dbname))
                                                                                                                                                                                                                                                                                                          604                ->setListeners([$this->eventListener])->notify();
                                                                                                                                                                                                                                                                                                          605            $connected = $this->mysqli->realConnect(
                                                                                                                                                                                                                                                                                                          606                $host,
                                                                                                                                                                                                                                                                                                          607                $this->credentials->getUsername(),
                                                                                                                                                                                                                                                                                                          608                $this->credentials->getPasswd(),
                                                                                                                                                                                                                                                                                                          609                $dbname,
                                                                                                                                                                                                                                                                                                          610                $this->credentials->getPort(),
                                                                                                                                                                                                                                                                                                          611                $this->credentials->getSocket(),
                                                                                                                                                                                                                                                                                                          612                $this->credentials->getFlags()
                                                                                                                                                                                                                                                                                                          613            );
                                                                                                                                                                                                                                                                                                          614            (new MydbEvent\InternalConnectionEnd($host, $dbname, $connected))
                                                                                                                                                                                                                                                                                                          615                ->setListeners([$this->eventListener])->notify();
                                                                                                                                                                                                                                                                                                          616
                                                                                                                                                                                                                                                                                                          617            $this->environment->error_reporting($reportingLevel);
                                                                                                                                                                                                                                                                                                          618        }
                                                                                                                                                                                                                                                                                                          619
                                                                                                                                                                                                                                                                                                          620        if (false === $connected) {
                                                                                                                                                                                                                                                                                                          621            $errorNumber = (string) ($this->mysqli->getConnectErrno() ?: $this->mysqli->getErrNo());
                                                                                                                                                                                                                                                                                                          622            $errorText = (string) ($this->mysqli->getConnectError() ?: $this->mysqli->getError());
                                                                                                                                                                                                                                                                                                          623
                                                                                                                                                                                                                                                                                                          624            if (false === $this->mysqli->close()) {
                                                                                                                                                                                                                                                                                                          625                throw new DisconnectException();
                                                                                                                                                                                                                                                                                                          626            }
                                                                                                                                                                                                                                                                                                          627
                                                                                                                                                                                                                                                                                                          628            $this->onWarning($errorNumber . ' ' . $errorText);
                                                                                                                                                                                                                                                                                                          629
                                                                                                                                                                                                                                                                                                          630            if ($retry > 0) {
                                                                                                                                                                                                                                                                                                          631                --$retry;
                                                                                                                                                                                                                                                                                                          632
                                                                                                                                                                                                                                                                                                          633                return $this->connect($retry);
                                                                                                                                                                                                                                                                                                          634            }
                                                                                                                                                                                                                                                                                                          635
                                                                                                                                                                                                                                                                                                          636            return false;
                                                                                                                                                                                                                                                                                                          637        }
                                                                                                                                                                                                                                                                                                          638
                                                                                                                                                                                                                                                                                                          639        $this->mysqli->mysqliReport($this->options->getClientErrorLevel());
                                                                                                                                                                                                                                                                                                          640
                                                                                                                                                                                                                                                                                                          641        if (false === $this->mysqli->autocommit($this->options->isAutocommit())) {
                                                                                                                                                                                                                                                                                                          642            throw new TransactionAutocommitException();
                                                                                                                                                                                                                                                                                                          643        }
                                                                                                                                                                                                                                                                                                          644
                                                                                                                                                                                                                                                                                                          645        /**
                                                                                                                                                                                                                                                                                                          646         * Here's a summary of what variables are set by each statement: SET NAMES vs SET CHARSET
                                                                                                                                                                                                                                                                                                          647         *
                                                                                                                                                                                                                                                                                                          648         * Variable                 SET NAMES   SET CHARSET
                                                                                                                                                                                                                                                                                                          649         * character_set_client     argument    argument
                                                                                                                                                                                                                                                                                                          650         * character_set_results    argument    argument
                                                                                                                                                                                                                                                                                                          651         * character_set_connection argument    default for default db
                                                                                                                                                                                                                                                                                                          652         * collation_connection     argument*   default for default db
                                                                                                                                                                                                                                                                                                          653         *
                                                                                                                                                                                                                                                                                                          654         * SET CHARSET doesn't set the connection charset to the charset you specify in the argument,
                                                                                                                                                                                                                                                                                                          655         * instead it sets it to the charset for your current default database
                                                                                                                                                                                                                                                                                                          656         */
                                                                                                                                                                                                                                                                                                          657        $defaults = $this->mysqli->realQuery(
                                                                                                                                                                                                                                                                                                          658            sprintf(
                                                                                                                                                                                                                                                                                                          659                "SET time_zone = '%s', wait_timeout = %d, names '%s'",
                                                                                                                                                                                                                                                                                                          660                $this->options->getTimeZone(),
                                                                                                                                                                                                                                                                                                          661                $this->options->getNonInteractiveTimeout(),
                                                                                                                                                                                                                                                                                                          662                $this->options->getCharset()
                                                                                                                                                                                                                                                                                                          663            )
                                                                                                                                                                                                                                                                                                          664        );
                                                                                                                                                                                                                                                                                                          665
                                                                                                                                                                                                                                                                                                          666        if (false === $defaults) {
                                                                                                                                                                                                                                                                                                          667            throw new ConnectDefaultsException();
                                                                                                                                                                                                                                                                                                          668        }
                                                                                                                                                                                                                                                                                                          669
                                                                                                                                                                                                                                                                                                          670        $isoLevel = $this->options->getTransactionIsolationLevel();
                                                                                                                                                                                                                                                                                                          671        if (null !== $isoLevel && false === $this->mysqli->setTransactionIsolationLevel($isoLevel)) {
                                                                                                                                                                                                                                                                                                          672            throw new TransactionIsolationException();
                                                                                                                                                                                                                                                                                                          673        }
                                                                                                                                                                                                                                                                                                          674
                                                                                                                                                                                                                                                                                                          675        if ($this->options->isReadonly() && false === $this->mysqli->beginTransactionReadonly()) {
                                                                                                                                                                                                                                                                                                          676            throw new TransactionAutocommitException();
                                                                                                                                                                                                                                                                                                          677        }
                                                                                                                                                                                                                                                                                                          678
                                                                                                                                                                                                                                                                                                          679        return true;
                                                                                                                                                                                                                                                                                                          680    }
                                                                                                                                                                                                                                                                                                          681}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbCredentials.php.html b/php/phpunit/html/MydbCredentials.php.html new file mode 100644 index 00000000000..2205cd51546 --- /dev/null +++ b/php/phpunit/html/MydbCredentials.php.html @@ -0,0 +1,445 @@ + + + + + Code Coverage for /app/src/sql/MydbCredentials.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          14 / 14
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          8 / 8
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbCredentials
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          14 / 14
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          8 / 8
                                                                                                                                                                                                                                                                                                          8
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getHost
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getUsername
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getPasswd
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getDbname
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getPort
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getSocket
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getFlags
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23class MydbCredentials implements MydbCredentialsInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25
                                                                                                                                                                                                                                                                                                          26    /**
                                                                                                                                                                                                                                                                                                          27     * Database credentials - hostname
                                                                                                                                                                                                                                                                                                          28     * Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter,
                                                                                                                                                                                                                                                                                                          29     * the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.
                                                                                                                                                                                                                                                                                                          30     *
                                                                                                                                                                                                                                                                                                          31     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          32     */
                                                                                                                                                                                                                                                                                                          33    protected string $host;
                                                                                                                                                                                                                                                                                                          34
                                                                                                                                                                                                                                                                                                          35    /**
                                                                                                                                                                                                                                                                                                          36     * Database credentials - username
                                                                                                                                                                                                                                                                                                          37     *
                                                                                                                                                                                                                                                                                                          38     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          39     */
                                                                                                                                                                                                                                                                                                          40    protected string $username;
                                                                                                                                                                                                                                                                                                          41
                                                                                                                                                                                                                                                                                                          42    /**
                                                                                                                                                                                                                                                                                                          43     * Database credentials - password
                                                                                                                                                                                                                                                                                                          44     * If provided or null, the MySQL server will attempt to authenticate the user against those user records
                                                                                                                                                                                                                                                                                                          45     * which have no password only. This allows one username to be used with different permissions
                                                                                                                                                                                                                                                                                                          46     * (depending on if a password as provided or not).
                                                                                                                                                                                                                                                                                                          47     *
                                                                                                                                                                                                                                                                                                          48     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          49     */
                                                                                                                                                                                                                                                                                                          50    protected string $passwd;
                                                                                                                                                                                                                                                                                                          51
                                                                                                                                                                                                                                                                                                          52    /**
                                                                                                                                                                                                                                                                                                          53     * Database credentials - database name
                                                                                                                                                                                                                                                                                                          54     * If provided will specify the default database to be used when performing queries.
                                                                                                                                                                                                                                                                                                          55     *
                                                                                                                                                                                                                                                                                                          56     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          57     */
                                                                                                                                                                                                                                                                                                          58    protected string $dbname;
                                                                                                                                                                                                                                                                                                          59
                                                                                                                                                                                                                                                                                                          60    /**
                                                                                                                                                                                                                                                                                                          61     * Database credentials - port
                                                                                                                                                                                                                                                                                                          62     * Specifies the port number to attempt to connect to the MySQL server.
                                                                                                                                                                                                                                                                                                          63     *
                                                                                                                                                                                                                                                                                                          64     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          65     */
                                                                                                                                                                                                                                                                                                          66    protected ?int $port;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    /**
                                                                                                                                                                                                                                                                                                          69     * Database credentials - socket
                                                                                                                                                                                                                                                                                                          70     * Specifies the socket or named pipe that should be used.
                                                                                                                                                                                                                                                                                                          71     *
                                                                                                                                                                                                                                                                                                          72     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          73     */
                                                                                                                                                                                                                                                                                                          74    protected ?string $socket;
                                                                                                                                                                                                                                                                                                          75
                                                                                                                                                                                                                                                                                                          76    /**
                                                                                                                                                                                                                                                                                                          77     * Database credentials - connection flags
                                                                                                                                                                                                                                                                                                          78     * With the parameter flags you can set different connection options
                                                                                                                                                                                                                                                                                                          79     * MYSQLI_CLIENT_COMPRESS - Use compression protocol
                                                                                                                                                                                                                                                                                                          80     * MYSQLI_CLIENT_SSL - Use SSL (encryption)
                                                                                                                                                                                                                                                                                                          81     * MULTI_STATEMENT flag is not supported in PHP
                                                                                                                                                                                                                                                                                                          82     *
                                                                                                                                                                                                                                                                                                          83     * @see https://www.php.net/manual/en/mysqli.real-connect.php
                                                                                                                                                                                                                                                                                                          84     */
                                                                                                                                                                                                                                                                                                          85    protected int $flags;
                                                                                                                                                                                                                                                                                                          86
                                                                                                                                                                                                                                                                                                          87    public function __construct(
                                                                                                                                                                                                                                                                                                          88        string $host,
                                                                                                                                                                                                                                                                                                          89        string $username,
                                                                                                                                                                                                                                                                                                          90        string $passwd,
                                                                                                                                                                                                                                                                                                          91        string $dbname,
                                                                                                                                                                                                                                                                                                          92        ?int $port = null,
                                                                                                                                                                                                                                                                                                          93        ?string $socket = null,
                                                                                                                                                                                                                                                                                                          94        int $flags = 0,
                                                                                                                                                                                                                                                                                                          95    ) {
                                                                                                                                                                                                                                                                                                          96        $this->host = $host;
                                                                                                                                                                                                                                                                                                          97        $this->username = $username;
                                                                                                                                                                                                                                                                                                          98        $this->passwd = $passwd;
                                                                                                                                                                                                                                                                                                          99        $this->dbname = $dbname;
                                                                                                                                                                                                                                                                                                          100        $this->port = $port;
                                                                                                                                                                                                                                                                                                          101        $this->socket = $socket;
                                                                                                                                                                                                                                                                                                          102        $this->flags = $flags;
                                                                                                                                                                                                                                                                                                          103    }
                                                                                                                                                                                                                                                                                                          104
                                                                                                                                                                                                                                                                                                          105    public function getHost(): string
                                                                                                                                                                                                                                                                                                          106    {
                                                                                                                                                                                                                                                                                                          107        return $this->host;
                                                                                                                                                                                                                                                                                                          108    }
                                                                                                                                                                                                                                                                                                          109
                                                                                                                                                                                                                                                                                                          110    public function getUsername(): string
                                                                                                                                                                                                                                                                                                          111    {
                                                                                                                                                                                                                                                                                                          112        return $this->username;
                                                                                                                                                                                                                                                                                                          113    }
                                                                                                                                                                                                                                                                                                          114
                                                                                                                                                                                                                                                                                                          115    public function getPasswd(): string
                                                                                                                                                                                                                                                                                                          116    {
                                                                                                                                                                                                                                                                                                          117        return $this->passwd;
                                                                                                                                                                                                                                                                                                          118    }
                                                                                                                                                                                                                                                                                                          119
                                                                                                                                                                                                                                                                                                          120    public function getDbname(): string
                                                                                                                                                                                                                                                                                                          121    {
                                                                                                                                                                                                                                                                                                          122        return $this->dbname;
                                                                                                                                                                                                                                                                                                          123    }
                                                                                                                                                                                                                                                                                                          124
                                                                                                                                                                                                                                                                                                          125    public function getPort(): ?int
                                                                                                                                                                                                                                                                                                          126    {
                                                                                                                                                                                                                                                                                                          127        return $this->port;
                                                                                                                                                                                                                                                                                                          128    }
                                                                                                                                                                                                                                                                                                          129
                                                                                                                                                                                                                                                                                                          130    public function getSocket(): ?string
                                                                                                                                                                                                                                                                                                          131    {
                                                                                                                                                                                                                                                                                                          132        return $this->socket;
                                                                                                                                                                                                                                                                                                          133    }
                                                                                                                                                                                                                                                                                                          134
                                                                                                                                                                                                                                                                                                          135    public function getFlags(): int
                                                                                                                                                                                                                                                                                                          136    {
                                                                                                                                                                                                                                                                                                          137        return $this->flags;
                                                                                                                                                                                                                                                                                                          138    }
                                                                                                                                                                                                                                                                                                          139}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbCredentialsInterface.php.html b/php/phpunit/html/MydbCredentialsInterface.php.html new file mode 100644 index 00000000000..ab561cef010 --- /dev/null +++ b/php/phpunit/html/MydbCredentialsInterface.php.html @@ -0,0 +1,124 @@ + + + + + Code Coverage for /app/src/sql/MydbCredentialsInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23interface MydbCredentialsInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25    public function getHost(): string;
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27    public function getUsername(): string;
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29    public function getPasswd(): string;
                                                                                                                                                                                                                                                                                                          30
                                                                                                                                                                                                                                                                                                          31    public function getDbname(): string;
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    public function getPort(): ?int;
                                                                                                                                                                                                                                                                                                          34
                                                                                                                                                                                                                                                                                                          35    public function getSocket(): ?string;
                                                                                                                                                                                                                                                                                                          36
                                                                                                                                                                                                                                                                                                          37    public function getFlags(): int;
                                                                                                                                                                                                                                                                                                          38}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEnvironment.php.html b/php/phpunit/html/MydbEnvironment.php.html new file mode 100644 index 00000000000..d4e7ca0d6eb --- /dev/null +++ b/php/phpunit/html/MydbEnvironment.php.html @@ -0,0 +1,613 @@ + + + + + Code Coverage for /app/src/sql/MydbEnvironment.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          32 / 32
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbEnvironment
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          32 / 32
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          18
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           gc_collect_cycles
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           restore_error_handler
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           set_error_handler
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setMysqlndNetReadTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           error_reporting
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           ignore_user_abort
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           ini_set
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           endSignalsTrap
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          5
                                                                                                                                                                                                                                                                                                           startSignalsTrap
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          8 / 8
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getNullErrorHandler
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException\EnvironmentException;
                                                                                                                                                                                                                                                                                                          19use function count;
                                                                                                                                                                                                                                                                                                          20use function error_reporting;
                                                                                                                                                                                                                                                                                                          21use function gc_collect_cycles;
                                                                                                                                                                                                                                                                                                          22use function gc_enabled;
                                                                                                                                                                                                                                                                                                          23use function ignore_user_abort;
                                                                                                                                                                                                                                                                                                          24use function ini_set;
                                                                                                                                                                                                                                                                                                          25use function pcntl_signal;
                                                                                                                                                                                                                                                                                                          26use function pcntl_signal_dispatch;
                                                                                                                                                                                                                                                                                                          27use function pcntl_signal_get_handler;
                                                                                                                                                                                                                                                                                                          28use function restore_error_handler;
                                                                                                                                                                                                                                                                                                          29use function set_error_handler;
                                                                                                                                                                                                                                                                                                          30use const E_ALL;
                                                                                                                                                                                                                                                                                                          31use const E_STRICT;
                                                                                                                                                                                                                                                                                                          32use const SIG_DFL;
                                                                                                                                                                                                                                                                                                          33use const SIGHUP;
                                                                                                                                                                                                                                                                                                          34use const SIGINT;
                                                                                                                                                                                                                                                                                                          35use const SIGTERM;
                                                                                                                                                                                                                                                                                                          36
                                                                                                                                                                                                                                                                                                          37/**
                                                                                                                                                                                                                                                                                                          38 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          39 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          40 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          41 */
                                                                                                                                                                                                                                                                                                          42class MydbEnvironment implements MydbEnvironmentInterface
                                                                                                                                                                                                                                                                                                          43{
                                                                                                                                                                                                                                                                                                          44
                                                                                                                                                                                                                                                                                                          45    /**
                                                                                                                                                                                                                                                                                                          46     * @var array<int>
                                                                                                                                                                                                                                                                                                          47     */
                                                                                                                                                                                                                                                                                                          48    protected array $knownSignals = [SIGTERM, SIGINT, SIGHUP];
                                                                                                                                                                                                                                                                                                          49
                                                                                                                                                                                                                                                                                                          50    /**
                                                                                                                                                                                                                                                                                                          51     * Any signals that were trapped during custom signal handler
                                                                                                                                                                                                                                                                                                          52     *
                                                                                                                                                                                                                                                                                                          53     * @var array<int>
                                                                                                                                                                                                                                                                                                          54     */
                                                                                                                                                                                                                                                                                                          55    protected array $trappedSignals = [];
                                                                                                                                                                                                                                                                                                          56
                                                                                                                                                                                                                                                                                                          57    /**
                                                                                                                                                                                                                                                                                                          58     * Backup of signal handlers
                                                                                                                                                                                                                                                                                                          59     * Original signal handler, which replaced by custon trap
                                                                                                                                                                                                                                                                                                          60     * @psalm-var array<int, int|resource|string>
                                                                                                                                                                                                                                                                                                          61     */
                                                                                                                                                                                                                                                                                                          62    protected array $trappedHandlers = [];
                                                                                                                                                                                                                                                                                                          63
                                                                                                                                                                                                                                                                                                          64    /**
                                                                                                                                                                                                                                                                                                          65     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          66     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          67     * @see https://www.php.net/manual/en/function.gc-collect-cycles
                                                                                                                                                                                                                                                                                                          68     */
                                                                                                                                                                                                                                                                                                          69    public function gc_collect_cycles(): void
                                                                                                                                                                                                                                                                                                          70    {
                                                                                                                                                                                                                                                                                                          71        if (!gc_enabled()) {
                                                                                                                                                                                                                                                                                                          72            // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          73            return;
                                                                                                                                                                                                                                                                                                          74            // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          75        }
                                                                                                                                                                                                                                                                                                          76
                                                                                                                                                                                                                                                                                                          77        gc_collect_cycles();
                                                                                                                                                                                                                                                                                                          78    }
                                                                                                                                                                                                                                                                                                          79
                                                                                                                                                                                                                                                                                                          80    /**
                                                                                                                                                                                                                                                                                                          81     * Restore previous PHP error handler
                                                                                                                                                                                                                                                                                                          82     *
                                                                                                                                                                                                                                                                                                          83     * @see https://www.php.net/manual/en/function.restore-error-handler.php
                                                                                                                                                                                                                                                                                                          84     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          85     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          86     */
                                                                                                                                                                                                                                                                                                          87    public function restore_error_handler(): void
                                                                                                                                                                                                                                                                                                          88    {
                                                                                                                                                                                                                                                                                                          89        restore_error_handler();
                                                                                                                                                                                                                                                                                                          90    }
                                                                                                                                                                                                                                                                                                          91
                                                                                                                                                                                                                                                                                                          92    /**
                                                                                                                                                                                                                                                                                                          93     * Set custom PHP error handler
                                                                                                                                                                                                                                                                                                          94     *
                                                                                                                                                                                                                                                                                                          95     * @param callable|null $callback
                                                                                                                                                                                                                                                                                                          96     * @see https://www.php.net/manual/en/function.set-error-handler
                                                                                                                                                                                                                                                                                                          97     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          98     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          99     */
                                                                                                                                                                                                                                                                                                          100    public function set_error_handler(?callable $callback = null, int $error_levels = E_ALL|E_STRICT): void
                                                                                                                                                                                                                                                                                                          101    {
                                                                                                                                                                                                                                                                                                          102        /** @var callable(int, string, string=, int=, array<array-key, mixed>=):bool|null $newHandler */
                                                                                                                                                                                                                                                                                                          103        $newHandler = $callback ?? $this->getNullErrorHandler();
                                                                                                                                                                                                                                                                                                          104
                                                                                                                                                                                                                                                                                                          105        set_error_handler($newHandler, $error_levels);
                                                                                                                                                                                                                                                                                                          106    }
                                                                                                                                                                                                                                                                                                          107
                                                                                                                                                                                                                                                                                                          108    /**
                                                                                                                                                                                                                                                                                                          109     * Set mysqlnd.net_read_timeout php ini value
                                                                                                                                                                                                                                                                                                          110     *
                                                                                                                                                                                                                                                                                                          111     * mysqlnd and the MySQL Client Library, libmysqlclient use different networking APIs.
                                                                                                                                                                                                                                                                                                          112     * mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level network calls.
                                                                                                                                                                                                                                                                                                          113     * PHP, by default, sets a read timeout of 60s for streams.
                                                                                                                                                                                                                                                                                                          114     * This is set via php.ini, default_socket_timeout.
                                                                                                                                                                                                                                                                                                          115     * This default applies to all streams that set no other timeout value.
                                                                                                                                                                                                                                                                                                          116     * mysqlnd does not set any other value and therefore connections of long running queries can be disconnected
                                                                                                                                                                                                                                                                                                          117     * after default_socket_timeout seconds resulting in an error message 2006 - MySQL Server has gone away.
                                                                                                                                                                                                                                                                                                          118     * The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day)
                                                                                                                                                                                                                                                                                                          119     * and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout.
                                                                                                                                                                                                                                                                                                          120     * The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout.
                                                                                                                                                                                                                                                                                                          121     *
                                                                                                                                                                                                                                                                                                          122     * mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd.
                                                                                                                                                                                                                                                                                                          123     * mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout.
                                                                                                                                                                                                                                                                                                          124     * Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library
                                                                                                                                                                                                                                                                                                          125     * and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and,
                                                                                                                                                                                                                                                                                                          126     * prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation.
                                                                                                                                                                                                                                                                                                          127     *
                                                                                                                                                                                                                                                                                                          128     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          129     * @see https://www.php.net/manual/en/mysqlnd.config.php
                                                                                                                                                                                                                                                                                                          130     */
                                                                                                                                                                                                                                                                                                          131    public function setMysqlndNetReadTimeout(string $timeoutSeconds): bool
                                                                                                                                                                                                                                                                                                          132    {
                                                                                                                                                                                                                                                                                                          133        return (bool) $this->ini_set('mysqlnd.net_read_timeout', $timeoutSeconds);
                                                                                                                                                                                                                                                                                                          134    }
                                                                                                                                                                                                                                                                                                          135
                                                                                                                                                                                                                                                                                                          136    /**
                                                                                                                                                                                                                                                                                                          137     * Sets which PHP errors are reported
                                                                                                                                                                                                                                                                                                          138     *
                                                                                                                                                                                                                                                                                                          139     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          140     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          141     * @see https://www.php.net/manual/en/function.error-reporting
                                                                                                                                                                                                                                                                                                          142     */
                                                                                                                                                                                                                                                                                                          143    public function error_reporting(int $level): int
                                                                                                                                                                                                                                                                                                          144    {
                                                                                                                                                                                                                                                                                                          145        return error_reporting($level);
                                                                                                                                                                                                                                                                                                          146    }
                                                                                                                                                                                                                                                                                                          147
                                                                                                                                                                                                                                                                                                          148    /**
                                                                                                                                                                                                                                                                                                          149     * Set whether a client disconnect should abort script execution (does not affect CLI)
                                                                                                                                                                                                                                                                                                          150     *
                                                                                                                                                                                                                                                                                                          151     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          152     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          153     * @see https://www.php.net/manual/en/function.ignore-user-abort
                                                                                                                                                                                                                                                                                                          154     */
                                                                                                                                                                                                                                                                                                          155    public function ignore_user_abort(): int
                                                                                                                                                                                                                                                                                                          156    {
                                                                                                                                                                                                                                                                                                          157        return ignore_user_abort();
                                                                                                                                                                                                                                                                                                          158    }
                                                                                                                                                                                                                                                                                                          159
                                                                                                                                                                                                                                                                                                          160    /**
                                                                                                                                                                                                                                                                                                          161     * Sets the value of a configuration option
                                                                                                                                                                                                                                                                                                          162     *
                                                                                                                                                                                                                                                                                                          163     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          164     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          165     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          166     * @see https://www.php.net/manual/en/function.ini-set
                                                                                                                                                                                                                                                                                                          167     */
                                                                                                                                                                                                                                                                                                          168    public function ini_set(string $key, string $value): string
                                                                                                                                                                                                                                                                                                          169    {
                                                                                                                                                                                                                                                                                                          170        $result = ini_set($key, $value);
                                                                                                                                                                                                                                                                                                          171        if (false === $result) {
                                                                                                                                                                                                                                                                                                          172            // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          173            throw new EnvironmentException();
                                                                                                                                                                                                                                                                                                          174            // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          175        }
                                                                                                                                                                                                                                                                                                          176
                                                                                                                                                                                                                                                                                                          177        return $result;
                                                                                                                                                                                                                                                                                                          178    }
                                                                                                                                                                                                                                                                                                          179
                                                                                                                                                                                                                                                                                                          180    /**
                                                                                                                                                                                                                                                                                                          181     * Disable custom signal handler
                                                                                                                                                                                                                                                                                                          182     *
                                                                                                                                                                                                                                                                                                          183     * @see https://wiki.php.net/rfc/async_signals
                                                                                                                                                                                                                                                                                                          184     * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/
                                                                                                                                                                                                                                                                                                          185     * @see https://www.php.net/manual/en/function.pcntl-signal
                                                                                                                                                                                                                                                                                                          186     *
                                                                                                                                                                                                                                                                                                          187     * @return array<int>|null array of trapped signals
                                                                                                                                                                                                                                                                                                          188     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          189     */
                                                                                                                                                                                                                                                                                                          190    public function endSignalsTrap(): ?array
                                                                                                                                                                                                                                                                                                          191    {
                                                                                                                                                                                                                                                                                                          192        /**
                                                                                                                                                                                                                                                                                                          193         * Process signals
                                                                                                                                                                                                                                                                                                          194         */
                                                                                                                                                                                                                                                                                                          195        if (!pcntl_signal_dispatch()) {
                                                                                                                                                                                                                                                                                                          196            // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          197            throw new EnvironmentException();
                                                                                                                                                                                                                                                                                                          198            // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          199        }
                                                                                                                                                                                                                                                                                                          200
                                                                                                                                                                                                                                                                                                          201        $trappedSignals = $this->trappedSignals;
                                                                                                                                                                                                                                                                                                          202        foreach ($this->knownSignals as $signalNumber) {
                                                                                                                                                                                                                                                                                                          203            /**
                                                                                                                                                                                                                                                                                                          204             * Reset signals to previous/default handler
                                                                                                                                                                                                                                                                                                          205             */
                                                                                                                                                                                                                                                                                                          206            $newHandler = $this->trappedHandlers[$signalNumber] ?? SIG_DFL;
                                                                                                                                                                                                                                                                                                          207
                                                                                                                                                                                                                                                                                                          208            /**
                                                                                                                                                                                                                                                                                                          209             * @psalm-suppress PossiblyInvalidArgument
                                                                                                                                                                                                                                                                                                          210             */
                                                                                                                                                                                                                                                                                                          211            if (!pcntl_signal($signalNumber, $newHandler)) {
                                                                                                                                                                                                                                                                                                          212                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          213                throw new EnvironmentException();
                                                                                                                                                                                                                                                                                                          214                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          215            }
                                                                                                                                                                                                                                                                                                          216            unset($this->trappedHandlers[$signalNumber]);
                                                                                                                                                                                                                                                                                                          217        }
                                                                                                                                                                                                                                                                                                          218        $this->trappedSignals = [];
                                                                                                                                                                                                                                                                                                          219
                                                                                                                                                                                                                                                                                                          220        return count($trappedSignals) > 0
                                                                                                                                                                                                                                                                                                          221            ? $trappedSignals
                                                                                                                                                                                                                                                                                                          222            : null;
                                                                                                                                                                                                                                                                                                          223    }
                                                                                                                                                                                                                                                                                                          224
                                                                                                                                                                                                                                                                                                          225    /**
                                                                                                                                                                                                                                                                                                          226     * Enable custom signal handler
                                                                                                                                                                                                                                                                                                          227     *
                                                                                                                                                                                                                                                                                                          228     * @see https://wiki.php.net/rfc/async_signals
                                                                                                                                                                                                                                                                                                          229     * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/
                                                                                                                                                                                                                                                                                                          230     * @see https://www.php.net/manual/en/function.pcntl-signal
                                                                                                                                                                                                                                                                                                          231     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          232     */
                                                                                                                                                                                                                                                                                                          233    public function startSignalsTrap(): void
                                                                                                                                                                                                                                                                                                          234    {
                                                                                                                                                                                                                                                                                                          235        $this->trappedSignals = [];
                                                                                                                                                                                                                                                                                                          236
                                                                                                                                                                                                                                                                                                          237        $signalHandler = function (int $signalNumber): void {
                                                                                                                                                                                                                                                                                                          238            $this->trappedSignals[] = $signalNumber;
                                                                                                                                                                                                                                                                                                          239        };
                                                                                                                                                                                                                                                                                                          240
                                                                                                                                                                                                                                                                                                          241        foreach ($this->knownSignals as $signalNumber) {
                                                                                                                                                                                                                                                                                                          242            $originalNandler = pcntl_signal_get_handler($signalNumber);
                                                                                                                                                                                                                                                                                                          243            $this->trappedHandlers[$signalNumber] = $originalNandler;
                                                                                                                                                                                                                                                                                                          244
                                                                                                                                                                                                                                                                                                          245            if (!pcntl_signal($signalNumber, $signalHandler)) {
                                                                                                                                                                                                                                                                                                          246                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          247                throw new EnvironmentException();
                                                                                                                                                                                                                                                                                                          248                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          249            }
                                                                                                                                                                                                                                                                                                          250        }
                                                                                                                                                                                                                                                                                                          251    }
                                                                                                                                                                                                                                                                                                          252
                                                                                                                                                                                                                                                                                                          253    /**
                                                                                                                                                                                                                                                                                                          254     * Error handler that does nothing and does not chain
                                                                                                                                                                                                                                                                                                          255     * @see https://www.php.net/manual/en/function.set-error-handler
                                                                                                                                                                                                                                                                                                          256     */
                                                                                                                                                                                                                                                                                                          257    protected function getNullErrorHandler(): callable
                                                                                                                                                                                                                                                                                                          258    {
                                                                                                                                                                                                                                                                                                          259        return static function (): bool {
                                                                                                                                                                                                                                                                                                          260            return true;
                                                                                                                                                                                                                                                                                                          261        };
                                                                                                                                                                                                                                                                                                          262    }
                                                                                                                                                                                                                                                                                                          263}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEnvironmentInterface.php.html b/php/phpunit/html/MydbEnvironmentInterface.php.html new file mode 100644 index 00000000000..2c7a4ebf78b --- /dev/null +++ b/php/phpunit/html/MydbEnvironmentInterface.php.html @@ -0,0 +1,156 @@ + + + + + Code Coverage for /app/src/sql/MydbEnvironmentInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use const E_ALL;
                                                                                                                                                                                                                                                                                                          19use const E_STRICT;
                                                                                                                                                                                                                                                                                                          20
                                                                                                                                                                                                                                                                                                          21/**
                                                                                                                                                                                                                                                                                                          22 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          23 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26interface MydbEnvironmentInterface
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29    /**
                                                                                                                                                                                                                                                                                                          30     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          31     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          32     */
                                                                                                                                                                                                                                                                                                          33    public function gc_collect_cycles(): void;
                                                                                                                                                                                                                                                                                                          34
                                                                                                                                                                                                                                                                                                          35    /**
                                                                                                                                                                                                                                                                                                          36     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          37     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          38     */
                                                                                                                                                                                                                                                                                                          39    public function restore_error_handler(): void;
                                                                                                                                                                                                                                                                                                          40
                                                                                                                                                                                                                                                                                                          41    /**
                                                                                                                                                                                                                                                                                                          42     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          43     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          44     */
                                                                                                                                                                                                                                                                                                          45    public function set_error_handler(?callable $callback = null, int $error_levels = E_ALL|E_STRICT): void;
                                                                                                                                                                                                                                                                                                          46
                                                                                                                                                                                                                                                                                                          47    public function setMysqlndNetReadTimeout(string $timeoutSeconds): bool;
                                                                                                                                                                                                                                                                                                          48
                                                                                                                                                                                                                                                                                                          49    /**
                                                                                                                                                                                                                                                                                                          50     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          51     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          52     */
                                                                                                                                                                                                                                                                                                          53    public function error_reporting(int $level): int;
                                                                                                                                                                                                                                                                                                          54
                                                                                                                                                                                                                                                                                                          55    /**
                                                                                                                                                                                                                                                                                                          56     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          57     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          58     */
                                                                                                                                                                                                                                                                                                          59    public function ignore_user_abort(): int;
                                                                                                                                                                                                                                                                                                          60
                                                                                                                                                                                                                                                                                                          61    /**
                                                                                                                                                                                                                                                                                                          62     * @SuppressWarnings("camelCase")
                                                                                                                                                                                                                                                                                                          63     * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
                                                                                                                                                                                                                                                                                                          64     */
                                                                                                                                                                                                                                                                                                          65    public function ini_set(string $key, string $value): string;
                                                                                                                                                                                                                                                                                                          66
                                                                                                                                                                                                                                                                                                          67    public function endSignalsTrap(): ?array;
                                                                                                                                                                                                                                                                                                          68
                                                                                                                                                                                                                                                                                                          69    public function startSignalsTrap(): void;
                                                                                                                                                                                                                                                                                                          70}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent.php.html b/php/phpunit/html/MydbEvent.php.html new file mode 100644 index 00000000000..d91bd7b7747 --- /dev/null +++ b/php/phpunit/html/MydbEvent.php.html @@ -0,0 +1,251 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           getEventMetadata
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                           getListeners
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                           notify
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           getEventName
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException\EventException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20abstract class MydbEvent implements MydbEventInterface, MydbEventMetadataInterface
                                                                                                                                                                                                                                                                                                          21{
                                                                                                                                                                                                                                                                                                          22
                                                                                                                                                                                                                                                                                                          23    /**
                                                                                                                                                                                                                                                                                                          24     * @psalm-return array<array-key, mixed>|null
                                                                                                                                                                                                                                                                                                          25     */
                                                                                                                                                                                                                                                                                                          26    abstract public function getEventMetadata(): ?array;
                                                                                                                                                                                                                                                                                                          27
                                                                                                                                                                                                                                                                                                          28    /**
                                                                                                                                                                                                                                                                                                          29     * @return array<\sql\MydbListenerInterface>
                                                                                                                                                                                                                                                                                                          30     */
                                                                                                                                                                                                                                                                                                          31    abstract protected function getListeners(): array;
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    /**
                                                                                                                                                                                                                                                                                                          34     * @throws \sql\MydbException\EventException
                                                                                                                                                                                                                                                                                                          35     */
                                                                                                                                                                                                                                                                                                          36    public function notify(): void
                                                                                                                                                                                                                                                                                                          37    {
                                                                                                                                                                                                                                                                                                          38        foreach ($this->getListeners() as $listenerInstance) {
                                                                                                                                                                                                                                                                                                          39            if ($listenerInstance instanceof MydbListenerInterface) {
                                                                                                                                                                                                                                                                                                          40                if (false === $listenerInstance->observe($this)) {
                                                                                                                                                                                                                                                                                                          41                    break;
                                                                                                                                                                                                                                                                                                          42                }
                                                                                                                                                                                                                                                                                                          43            } else {
                                                                                                                                                                                                                                                                                                          44                throw new EventException();
                                                                                                                                                                                                                                                                                                          45            }
                                                                                                                                                                                                                                                                                                          46        }
                                                                                                                                                                                                                                                                                                          47    }
                                                                                                                                                                                                                                                                                                          48
                                                                                                                                                                                                                                                                                                          49    public function getEventName(): string
                                                                                                                                                                                                                                                                                                          50    {
                                                                                                                                                                                                                                                                                                          51        return static::class;
                                                                                                                                                                                                                                                                                                          52    }
                                                                                                                                                                                                                                                                                                          53}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/ExampleEvent.php.html b/php/phpunit/html/MydbEvent/ExampleEvent.php.html new file mode 100644 index 00000000000..3782108d545 --- /dev/null +++ b/php/phpunit/html/MydbEvent/ExampleEvent.php.html @@ -0,0 +1,182 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/ExampleEvent.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          ExampleEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                           getListeners
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20class ExampleEvent extends MydbEvent
                                                                                                                                                                                                                                                                                                          21{
                                                                                                                                                                                                                                                                                                          22    protected function getListeners(): array
                                                                                                                                                                                                                                                                                                          23    {
                                                                                                                                                                                                                                                                                                          24        return [
                                                                                                                                                                                                                                                                                                          25            (new ExampleListener())->onMyEvent(),
                                                                                                                                                                                                                                                                                                          26            (new ExampleListener())->onMySomeEvent(),
                                                                                                                                                                                                                                                                                                          27        ];
                                                                                                                                                                                                                                                                                                          28    }
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/ExampleListener.php.html b/php/phpunit/html/MydbEvent/ExampleListener.php.html new file mode 100644 index 00000000000..a48e50207cf --- /dev/null +++ b/php/phpunit/html/MydbEvent/ExampleListener.php.html @@ -0,0 +1,238 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/ExampleListener.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 3
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          ExampleListener
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 3
                                                                                                                                                                                                                                                                                                          12
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                           onMySomeEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           onMyEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           doSomeWork
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 0.00% covered (danger) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          0.00%
                                                                                                                                                                                                                                                                                                          0 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use function serialize;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20class ExampleListener
                                                                                                                                                                                                                                                                                                          21{
                                                                                                                                                                                                                                                                                                          22
                                                                                                                                                                                                                                                                                                          23    public function onMySomeEvent(): callable
                                                                                                                                                                                                                                                                                                          24    {
                                                                                                                                                                                                                                                                                                          25        return function (array $payload): void {
                                                                                                                                                                                                                                                                                                          26            $this->doSomeWork($payload);
                                                                                                                                                                                                                                                                                                          27        };
                                                                                                                                                                                                                                                                                                          28    }
                                                                                                                                                                                                                                                                                                          29
                                                                                                                                                                                                                                                                                                          30    public function onMyEvent(): callable
                                                                                                                                                                                                                                                                                                          31    {
                                                                                                                                                                                                                                                                                                          32        return function (array $payload): void {
                                                                                                                                                                                                                                                                                                          33            $this->doSomeWork($payload);
                                                                                                                                                                                                                                                                                                          34        };
                                                                                                                                                                                                                                                                                                          35    }
                                                                                                                                                                                                                                                                                                          36
                                                                                                                                                                                                                                                                                                          37    protected function doSomeWork(array $data): string
                                                                                                                                                                                                                                                                                                          38    {
                                                                                                                                                                                                                                                                                                          39        return serialize($data) . "\n";
                                                                                                                                                                                                                                                                                                          40    }
                                                                                                                                                                                                                                                                                                          41}
                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/InternalConnectionBegin.php.html b/php/phpunit/html/MydbEvent/InternalConnectionBegin.php.html new file mode 100644 index 00000000000..b8751ff5bda --- /dev/null +++ b/php/phpunit/html/MydbEvent/InternalConnectionBegin.php.html @@ -0,0 +1,180 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/InternalConnectionBegin.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalConnectionBegin
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18class InternalConnectionBegin extends InternalEvent
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function __construct(string $host, string $dbname)
                                                                                                                                                                                                                                                                                                          21    {
                                                                                                                                                                                                                                                                                                          22        $this->data = [
                                                                                                                                                                                                                                                                                                          23            'host' => $host,
                                                                                                                                                                                                                                                                                                          24            'dbname' => $dbname,
                                                                                                                                                                                                                                                                                                          25        ];
                                                                                                                                                                                                                                                                                                          26    }
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/InternalConnectionEnd.php.html b/php/phpunit/html/MydbEvent/InternalConnectionEnd.php.html new file mode 100644 index 00000000000..e4970eae0ae --- /dev/null +++ b/php/phpunit/html/MydbEvent/InternalConnectionEnd.php.html @@ -0,0 +1,181 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/InternalConnectionEnd.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalConnectionEnd
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18class InternalConnectionEnd extends InternalEvent
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function __construct(string $host, string $dbname, bool $success)
                                                                                                                                                                                                                                                                                                          21    {
                                                                                                                                                                                                                                                                                                          22        $this->data = [
                                                                                                                                                                                                                                                                                                          23            'host' => $host,
                                                                                                                                                                                                                                                                                                          24            'dbname' => $dbname,
                                                                                                                                                                                                                                                                                                          25            'success' => $success,
                                                                                                                                                                                                                                                                                                          26        ];
                                                                                                                                                                                                                                                                                                          27    }
                                                                                                                                                                                                                                                                                                          28}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/InternalEvent.php.html b/php/phpunit/html/MydbEvent/InternalEvent.php.html new file mode 100644 index 00000000000..72bd40a1387 --- /dev/null +++ b/php/phpunit/html/MydbEvent/InternalEvent.php.html @@ -0,0 +1,253 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/InternalEvent.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           getEventMetadata
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setListeners
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getListeners
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          19use sql\MydbEventInterface;
                                                                                                                                                                                                                                                                                                          20
                                                                                                                                                                                                                                                                                                          21class InternalEvent extends MydbEvent
                                                                                                                                                                                                                                                                                                          22{
                                                                                                                                                                                                                                                                                                          23
                                                                                                                                                                                                                                                                                                          24    /**
                                                                                                                                                                                                                                                                                                          25     * @psalm-var array<\sql\MydbListenerInterface>
                                                                                                                                                                                                                                                                                                          26     */
                                                                                                                                                                                                                                                                                                          27    protected array $listeners = [];
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29    /**
                                                                                                                                                                                                                                                                                                          30     * @psalm-var array<array-key, mixed>|null
                                                                                                                                                                                                                                                                                                          31     */
                                                                                                                                                                                                                                                                                                          32    protected ?array $data = null;
                                                                                                                                                                                                                                                                                                          33
                                                                                                                                                                                                                                                                                                          34    public function getEventMetadata(): ?array
                                                                                                                                                                                                                                                                                                          35    {
                                                                                                                                                                                                                                                                                                          36        return $this->data;
                                                                                                                                                                                                                                                                                                          37    }
                                                                                                                                                                                                                                                                                                          38
                                                                                                                                                                                                                                                                                                          39    /**
                                                                                                                                                                                                                                                                                                          40     * @psalm-param array<\sql\MydbListenerInterface> $listeners
                                                                                                                                                                                                                                                                                                          41     */
                                                                                                                                                                                                                                                                                                          42    public function setListeners(array $listeners): MydbEventInterface
                                                                                                                                                                                                                                                                                                          43    {
                                                                                                                                                                                                                                                                                                          44        $this->listeners = $listeners;
                                                                                                                                                                                                                                                                                                          45
                                                                                                                                                                                                                                                                                                          46        return $this;
                                                                                                                                                                                                                                                                                                          47    }
                                                                                                                                                                                                                                                                                                          48
                                                                                                                                                                                                                                                                                                          49    /**
                                                                                                                                                                                                                                                                                                          50     * @psalm-return array<\sql\MydbListenerInterface>
                                                                                                                                                                                                                                                                                                          51     */
                                                                                                                                                                                                                                                                                                          52    protected function getListeners(): array
                                                                                                                                                                                                                                                                                                          53    {
                                                                                                                                                                                                                                                                                                          54        return $this->listeners;
                                                                                                                                                                                                                                                                                                          55    }
                                                                                                                                                                                                                                                                                                          56}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/InternalQueryBegin.php.html b/php/phpunit/html/MydbEvent/InternalQueryBegin.php.html new file mode 100644 index 00000000000..50d4de9d247 --- /dev/null +++ b/php/phpunit/html/MydbEvent/InternalQueryBegin.php.html @@ -0,0 +1,179 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/InternalQueryBegin.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalQueryBegin
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18class InternalQueryBegin extends InternalEvent
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function __construct(string $sql)
                                                                                                                                                                                                                                                                                                          21    {
                                                                                                                                                                                                                                                                                                          22        $this->data = [
                                                                                                                                                                                                                                                                                                          23            'sql' => $sql,
                                                                                                                                                                                                                                                                                                          24        ];
                                                                                                                                                                                                                                                                                                          25    }
                                                                                                                                                                                                                                                                                                          26}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/InternalQueryEnd.php.html b/php/phpunit/html/MydbEvent/InternalQueryEnd.php.html new file mode 100644 index 00000000000..b4f9b0d1ad2 --- /dev/null +++ b/php/phpunit/html/MydbEvent/InternalQueryEnd.php.html @@ -0,0 +1,180 @@ + + + + + Code Coverage for /app/src/sql/MydbEvent/InternalQueryEnd.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalQueryEnd
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbEvent;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18class InternalQueryEnd extends InternalEvent
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function __construct(string $sql, bool $success)
                                                                                                                                                                                                                                                                                                          21    {
                                                                                                                                                                                                                                                                                                          22        $this->data = [
                                                                                                                                                                                                                                                                                                          23            'sql' => $sql,
                                                                                                                                                                                                                                                                                                          24            'success' => $success,
                                                                                                                                                                                                                                                                                                          25        ];
                                                                                                                                                                                                                                                                                                          26    }
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/dashboard.html b/php/phpunit/html/MydbEvent/dashboard.html new file mode 100644 index 00000000000..c40ae30c73c --- /dev/null +++ b/php/phpunit/html/MydbEvent/dashboard.html @@ -0,0 +1,284 @@ + + + + + Dashboard for /app/src/sql/MydbEvent + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEvent/index.html b/php/phpunit/html/MydbEvent/index.html new file mode 100644 index 00000000000..429098579bc --- /dev/null +++ b/php/phpunit/html/MydbEvent/index.html @@ -0,0 +1,110 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/MydbEvent

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ExampleEvent.php.html

                                                                                                                                                                                                                                                                                                          ExampleEvent.php.html +
                                                                                                                                                                                                                                                                                                          14 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ExampleListener.php.html

                                                                                                                                                                                                                                                                                                          ExampleListener.php.html +
                                                                                                                                                                                                                                                                                                          20 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalConnectionBegin.php.html

                                                                                                                                                                                                                                                                                                          InternalConnectionBegin.php.html +
                                                                                                                                                                                                                                                                                                          39 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalConnectionEnd.php.html

                                                                                                                                                                                                                                                                                                          InternalConnectionEnd.php.html +
                                                                                                                                                                                                                                                                                                          46 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalEvent.php.html

                                                                                                                                                                                                                                                                                                          InternalEvent.php.html +
                                                                                                                                                                                                                                                                                                          53 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalQueryBegin.php.html

                                                                                                                                                                                                                                                                                                          InternalQueryBegin.php.html +
                                                                                                                                                                                                                                                                                                          31 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalQueryEnd.php.html

                                                                                                                                                                                                                                                                                                          InternalQueryEnd.php.html +
                                                                                                                                                                                                                                                                                                          37 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/MydbEventInterface.php.html b/php/phpunit/html/MydbEventInterface.php.html new file mode 100644 index 00000000000..95eb9cfad26 --- /dev/null +++ b/php/phpunit/html/MydbEventInterface.php.html @@ -0,0 +1,107 @@ + + + + + Code Coverage for /app/src/sql/MydbEventInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18interface MydbEventInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function notify(): void;
                                                                                                                                                                                                                                                                                                          21}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbEventMetadataInterface.php.html b/php/phpunit/html/MydbEventMetadataInterface.php.html new file mode 100644 index 00000000000..a1feea88922 --- /dev/null +++ b/php/phpunit/html/MydbEventMetadataInterface.php.html @@ -0,0 +1,112 @@ + + + + + Code Coverage for /app/src/sql/MydbEventMetadataInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18interface MydbEventMetadataInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    /**
                                                                                                                                                                                                                                                                                                          21     * @psalm-return array<array-key, mixed>|null
                                                                                                                                                                                                                                                                                                          22     */
                                                                                                                                                                                                                                                                                                          23    public function getEventMetadata(): ?array;
                                                                                                                                                                                                                                                                                                          24
                                                                                                                                                                                                                                                                                                          25    public function getEventName(): string;
                                                                                                                                                                                                                                                                                                          26}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException.php.html b/php/phpunit/html/MydbException.php.html new file mode 100644 index 00000000000..50a0830485d --- /dev/null +++ b/php/phpunit/html/MydbException.php.html @@ -0,0 +1,128 @@ + + + + + Code Coverage for /app/src/sql/MydbException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          MydbException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use Exception;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          24 */
                                                                                                                                                                                                                                                                                                          25class MydbException extends Exception
                                                                                                                                                                                                                                                                                                          26{
                                                                                                                                                                                                                                                                                                          27
                                                                                                                                                                                                                                                                                                          28}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/AsyncException.php.html b/php/phpunit/html/MydbException/AsyncException.php.html new file mode 100644 index 00000000000..1e956e35c7a --- /dev/null +++ b/php/phpunit/html/MydbException/AsyncException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/AsyncException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          AsyncException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class AsyncException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/ConnectDefaultsException.php.html b/php/phpunit/html/MydbException/ConnectDefaultsException.php.html new file mode 100644 index 00000000000..2f78da373b8 --- /dev/null +++ b/php/phpunit/html/MydbException/ConnectDefaultsException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/ConnectDefaultsException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          ConnectDefaultsException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class ConnectDefaultsException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/ConnectException.php.html b/php/phpunit/html/MydbException/ConnectException.php.html new file mode 100644 index 00000000000..bbe5d3f5dda --- /dev/null +++ b/php/phpunit/html/MydbException/ConnectException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/ConnectException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          ConnectException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class ConnectException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/DeleteException.php.html b/php/phpunit/html/MydbException/DeleteException.php.html new file mode 100644 index 00000000000..4e00b6dba7f --- /dev/null +++ b/php/phpunit/html/MydbException/DeleteException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/DeleteException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          DeleteException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class DeleteException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/DisconnectException.php.html b/php/phpunit/html/MydbException/DisconnectException.php.html new file mode 100644 index 00000000000..177f342ed00 --- /dev/null +++ b/php/phpunit/html/MydbException/DisconnectException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/DisconnectException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          DisconnectException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class DisconnectException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/EnvironmentException.php.html b/php/phpunit/html/MydbException/EnvironmentException.php.html new file mode 100644 index 00000000000..052f322a017 --- /dev/null +++ b/php/phpunit/html/MydbException/EnvironmentException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/EnvironmentException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          EnvironmentException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class EnvironmentException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/EventException.php.html b/php/phpunit/html/MydbException/EventException.php.html new file mode 100644 index 00000000000..3ee15ff55ea --- /dev/null +++ b/php/phpunit/html/MydbException/EventException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/EventException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          EventException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class EventException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/InternalException.php.html b/php/phpunit/html/MydbException/InternalException.php.html new file mode 100644 index 00000000000..73ae8a407dd --- /dev/null +++ b/php/phpunit/html/MydbException/InternalException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/InternalException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          InternalException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class InternalException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/LoggerException.php.html b/php/phpunit/html/MydbException/LoggerException.php.html new file mode 100644 index 00000000000..4239cf6505f --- /dev/null +++ b/php/phpunit/html/MydbException/LoggerException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/LoggerException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          LoggerException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class LoggerException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/OptionException.php.html b/php/phpunit/html/MydbException/OptionException.php.html new file mode 100644 index 00000000000..3231ba06160 --- /dev/null +++ b/php/phpunit/html/MydbException/OptionException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/OptionException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          OptionException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class OptionException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/QueryBuilderEscapeException.php.html b/php/phpunit/html/MydbException/QueryBuilderEscapeException.php.html new file mode 100644 index 00000000000..73a9152c2d0 --- /dev/null +++ b/php/phpunit/html/MydbException/QueryBuilderEscapeException.php.html @@ -0,0 +1,189 @@ + + + + + Code Coverage for /app/src/sql/MydbException/QueryBuilderEscapeException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          QueryBuilderEscapeException
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19use Throwable;
                                                                                                                                                                                                                                                                                                          20use function sprintf;
                                                                                                                                                                                                                                                                                                          21
                                                                                                                                                                                                                                                                                                          22/**
                                                                                                                                                                                                                                                                                                          23 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          24 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          25 * @category exceptions
                                                                                                                                                                                                                                                                                                          26 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          27 */
                                                                                                                                                                                                                                                                                                          28class QueryBuilderEscapeException extends MydbException
                                                                                                                                                                                                                                                                                                          29{
                                                                                                                                                                                                                                                                                                          30    protected const MESSAGE_TEMPLATE = 'Failed to escape value: %s';
                                                                                                                                                                                                                                                                                                          31
                                                                                                                                                                                                                                                                                                          32    public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
                                                                                                                                                                                                                                                                                                          33    {
                                                                                                                                                                                                                                                                                                          34        parent::__construct(sprintf(self::MESSAGE_TEMPLATE, $message), $code, $previous);
                                                                                                                                                                                                                                                                                                          35    }
                                                                                                                                                                                                                                                                                                          36}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/QueryBuilderException.php.html b/php/phpunit/html/MydbException/QueryBuilderException.php.html new file mode 100644 index 00000000000..2124a408991 --- /dev/null +++ b/php/phpunit/html/MydbException/QueryBuilderException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/QueryBuilderException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          QueryBuilderException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class QueryBuilderException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/RegistryException.php.html b/php/phpunit/html/MydbException/RegistryException.php.html new file mode 100644 index 00000000000..146b64cd82b --- /dev/null +++ b/php/phpunit/html/MydbException/RegistryException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/RegistryException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          RegistryException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class RegistryException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/ServerGoneException.php.html b/php/phpunit/html/MydbException/ServerGoneException.php.html new file mode 100644 index 00000000000..3c2560d6705 --- /dev/null +++ b/php/phpunit/html/MydbException/ServerGoneException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/ServerGoneException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          ServerGoneException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class ServerGoneException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TerminationSignalException.php.html b/php/phpunit/html/MydbException/TerminationSignalException.php.html new file mode 100644 index 00000000000..7f50457e980 --- /dev/null +++ b/php/phpunit/html/MydbException/TerminationSignalException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TerminationSignalException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TerminationSignalException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class TerminationSignalException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionAutocommitException.php.html b/php/phpunit/html/MydbException/TransactionAutocommitException.php.html new file mode 100644 index 00000000000..2e90adffe90 --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionAutocommitException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionAutocommitException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionAutocommitException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class TransactionAutocommitException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionBeginException.php.html b/php/phpunit/html/MydbException/TransactionBeginException.php.html new file mode 100644 index 00000000000..596425c25fe --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionBeginException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionBeginException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionBeginException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class TransactionBeginException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionBeginReadonlyException.php.html b/php/phpunit/html/MydbException/TransactionBeginReadonlyException.php.html new file mode 100644 index 00000000000..426b97374ac --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionBeginReadonlyException.php.html @@ -0,0 +1,128 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionBeginReadonlyException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionBeginReadonlyException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category exceptions
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24class TransactionBeginReadonlyException extends TransactionBeginException
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionBeginReadwriteException.php.html b/php/phpunit/html/MydbException/TransactionBeginReadwriteException.php.html new file mode 100644 index 00000000000..fafa84b57ab --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionBeginReadwriteException.php.html @@ -0,0 +1,128 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionBeginReadwriteException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionBeginReadwriteException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category exceptions
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24class TransactionBeginReadwriteException extends TransactionBeginException
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionCommitException.php.html b/php/phpunit/html/MydbException/TransactionCommitException.php.html new file mode 100644 index 00000000000..831552d98dc --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionCommitException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionCommitException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionCommitException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class TransactionCommitException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionIsolationException.php.html b/php/phpunit/html/MydbException/TransactionIsolationException.php.html new file mode 100644 index 00000000000..675c364506f --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionIsolationException.php.html @@ -0,0 +1,128 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionIsolationException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionIsolationException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category exceptions
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24class TransactionIsolationException extends TransactionBeginException
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/TransactionRollbackException.php.html b/php/phpunit/html/MydbException/TransactionRollbackException.php.html new file mode 100644 index 00000000000..fc7c2a48beb --- /dev/null +++ b/php/phpunit/html/MydbException/TransactionRollbackException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/TransactionRollbackException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          TransactionRollbackException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class TransactionRollbackException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/UpdateException.php.html b/php/phpunit/html/MydbException/UpdateException.php.html new file mode 100644 index 00000000000..37242793faa --- /dev/null +++ b/php/phpunit/html/MydbException/UpdateException.php.html @@ -0,0 +1,130 @@ + + + + + Code Coverage for /app/src/sql/MydbException/UpdateException.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          UpdateException
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbException;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @category exceptions
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26class UpdateException extends MydbException
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28
                                                                                                                                                                                                                                                                                                          29}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/dashboard.html b/php/phpunit/html/MydbException/dashboard.html new file mode 100644 index 00000000000..74414abc867 --- /dev/null +++ b/php/phpunit/html/MydbException/dashboard.html @@ -0,0 +1,284 @@ + + + + + Dashboard for /app/src/sql/MydbException + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbException/index.html b/php/phpunit/html/MydbException/index.html new file mode 100644 index 00000000000..dad8f7cc03c --- /dev/null +++ b/php/phpunit/html/MydbException/index.html @@ -0,0 +1,238 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/MydbException

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AsyncException.php.html

                                                                                                                                                                                                                                                                                                          AsyncException.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ConnectDefaultsException.php.html

                                                                                                                                                                                                                                                                                                          ConnectDefaultsException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ConnectException.php.html

                                                                                                                                                                                                                                                                                                          ConnectException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DeleteException.php.html

                                                                                                                                                                                                                                                                                                          DeleteException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DisconnectException.php.html

                                                                                                                                                                                                                                                                                                          DisconnectException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EnvironmentException.php.html

                                                                                                                                                                                                                                                                                                          EnvironmentException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EventException.php.html

                                                                                                                                                                                                                                                                                                          EventException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalException.php.html

                                                                                                                                                                                                                                                                                                          InternalException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          LoggerException.php.html

                                                                                                                                                                                                                                                                                                          LoggerException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          OptionException.php.html

                                                                                                                                                                                                                                                                                                          OptionException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryBuilderEscapeException.php.html

                                                                                                                                                                                                                                                                                                          QueryBuilderEscapeException.php.html +
                                                                                                                                                                                                                                                                                                          17 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryBuilderException.php.html

                                                                                                                                                                                                                                                                                                          QueryBuilderException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          RegistryException.php.html

                                                                                                                                                                                                                                                                                                          RegistryException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ServerGoneException.php.html

                                                                                                                                                                                                                                                                                                          ServerGoneException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TerminationSignalException.php.html

                                                                                                                                                                                                                                                                                                          TerminationSignalException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionAutocommitException.php.html

                                                                                                                                                                                                                                                                                                          TransactionAutocommitException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginException.php.html

                                                                                                                                                                                                                                                                                                          TransactionBeginException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginReadonlyException.php.html

                                                                                                                                                                                                                                                                                                          TransactionBeginReadonlyException.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginReadwriteException.php.html

                                                                                                                                                                                                                                                                                                          TransactionBeginReadwriteException.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionCommitException.php.html

                                                                                                                                                                                                                                                                                                          TransactionCommitException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionIsolationException.php.html

                                                                                                                                                                                                                                                                                                          TransactionIsolationException.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionRollbackException.php.html

                                                                                                                                                                                                                                                                                                          TransactionRollbackException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          UpdateException.php.html

                                                                                                                                                                                                                                                                                                          UpdateException.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/MydbExpression.php.html b/php/phpunit/html/MydbExpression.php.html new file mode 100644 index 00000000000..9806503f789 --- /dev/null +++ b/php/phpunit/html/MydbExpression.php.html @@ -0,0 +1,208 @@ + + + + + Code Coverage for /app/src/sql/MydbExpression.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbExpression
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           __toString
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23class MydbExpression implements MydbExpressionInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25
                                                                                                                                                                                                                                                                                                          26    public function __construct(protected string $input)
                                                                                                                                                                                                                                                                                                          27    {
                                                                                                                                                                                                                                                                                                          28    }
                                                                                                                                                                                                                                                                                                          29
                                                                                                                                                                                                                                                                                                          30    public function __toString(): string
                                                                                                                                                                                                                                                                                                          31    {
                                                                                                                                                                                                                                                                                                          32        return $this->input;
                                                                                                                                                                                                                                                                                                          33    }
                                                                                                                                                                                                                                                                                                          34}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface.php.html b/php/phpunit/html/MydbInterface.php.html new file mode 100644 index 00000000000..cb611f05835 --- /dev/null +++ b/php/phpunit/html/MydbInterface.php.html @@ -0,0 +1,118 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23interface MydbInterface extends
                                                                                                                                                                                                                                                                                                          24    MydbInterface\EncoderInterface,
                                                                                                                                                                                                                                                                                                          25    MydbInterface\CommandInterface,
                                                                                                                                                                                                                                                                                                          26    MydbInterface\QueryInterface,
                                                                                                                                                                                                                                                                                                          27    MydbInterface\DataManipulationStatementsInterface,
                                                                                                                                                                                                                                                                                                          28    MydbInterface\TransactionInterface,
                                                                                                                                                                                                                                                                                                          29    MydbInterface\AdministrationStatementsInterface
                                                                                                                                                                                                                                                                                                          30{
                                                                                                                                                                                                                                                                                                          31
                                                                                                                                                                                                                                                                                                          32}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/AdministrationStatementsInterface.php.html b/php/phpunit/html/MydbInterface/AdministrationStatementsInterface.php.html new file mode 100644 index 00000000000..57a057a120a --- /dev/null +++ b/php/phpunit/html/MydbInterface/AdministrationStatementsInterface.php.html @@ -0,0 +1,124 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/AdministrationStatementsInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @see https://dev.mysql.com/doc/refman/8.0/en/sql-server-administration-statements.html
                                                                                                                                                                                                                                                                                                          20 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          21 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          22 * @category interfaces
                                                                                                                                                                                                                                                                                                          23 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          24 */
                                                                                                                                                                                                                                                                                                          25interface AdministrationStatementsInterface
                                                                                                                                                                                                                                                                                                          26{
                                                                                                                                                                                                                                                                                                          27    /**
                                                                                                                                                                                                                                                                                                          28     * Get table primary keys
                                                                                                                                                                                                                                                                                                          29     * @return ?array<string>
                                                                                                                                                                                                                                                                                                          30     */
                                                                                                                                                                                                                                                                                                          31    public function getPrimaryKeys(string $table): ?array;
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    /**
                                                                                                                                                                                                                                                                                                          34     * @return array<string>
                                                                                                                                                                                                                                                                                                          35     */
                                                                                                                                                                                                                                                                                                          36    public function getEnumValues(string $table, string $column): array;
                                                                                                                                                                                                                                                                                                          37}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/AsyncInterface.php.html b/php/phpunit/html/MydbInterface/AsyncInterface.php.html new file mode 100644 index 00000000000..cc12e42d415 --- /dev/null +++ b/php/phpunit/html/MydbInterface/AsyncInterface.php.html @@ -0,0 +1,114 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/AsyncInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24interface AsyncInterface
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26    public function async(string $command): void;
                                                                                                                                                                                                                                                                                                          27}
                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/CommandInterface.php.html b/php/phpunit/html/MydbInterface/CommandInterface.php.html new file mode 100644 index 00000000000..57be3f2c4cd --- /dev/null +++ b/php/phpunit/html/MydbInterface/CommandInterface.php.html @@ -0,0 +1,119 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/CommandInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24interface CommandInterface
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26    /**
                                                                                                                                                                                                                                                                                                          27     * Execute any SQL command, without returning result
                                                                                                                                                                                                                                                                                                          28     * @param string $query sql command
                                                                                                                                                                                                                                                                                                          29     * @return bool true success or false on failure
                                                                                                                                                                                                                                                                                                          30     */
                                                                                                                                                                                                                                                                                                          31    public function command(string $query): bool;
                                                                                                                                                                                                                                                                                                          32}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/DataManipulationStatementsInterface.php.html b/php/phpunit/html/MydbInterface/DataManipulationStatementsInterface.php.html new file mode 100644 index 00000000000..5ef85236a0a --- /dev/null +++ b/php/phpunit/html/MydbInterface/DataManipulationStatementsInterface.php.html @@ -0,0 +1,160 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/DataManipulationStatementsInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * These statements do not implicitly commit the current transaction.
                                                                                                                                                                                                                                                                                                          20 *
                                                                                                                                                                                                                                                                                                          21 * Data Manipulation Language (DML) statements are used for managing data within
                                                                                                                                                                                                                                                                                                          22 * schema objects DML deals with data manipulation, and therefore includes most common
                                                                                                                                                                                                                                                                                                          23 * SQL statements such as SELECT, INSERT, etc. DML allows adding / modifying / deleting data itself.
                                                                                                                                                                                                                                                                                                          24 *
                                                                                                                                                                                                                                                                                                          25 * @see https://dev.mysql.com/doc/refman/8.0/en/sql-data-manipulation-statements.html
                                                                                                                                                                                                                                                                                                          26 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          27 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          28 * @category interfaces
                                                                                                                                                                                                                                                                                                          29 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          30 */
                                                                                                                                                                                                                                                                                                          31interface DataManipulationStatementsInterface
                                                                                                                                                                                                                                                                                                          32{
                                                                                                                                                                                                                                                                                                          33    /**
                                                                                                                                                                                                                                                                                                          34     * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update
                                                                                                                                                                                                                                                                                                          35     */
                                                                                                                                                                                                                                                                                                          36    public function updateWhere(array $update, array $whereFields, string $table, array $whereNotFields = []): ?int;
                                                                                                                                                                                                                                                                                                          37
                                                                                                                                                                                                                                                                                                          38    public function deleteWhere(array $whereFields, string $table, array $whereNotFields = []): ?int;
                                                                                                                                                                                                                                                                                                          39
                                                                                                                                                                                                                                                                                                          40    public function updateWhereMany(array $columnSetWhere, array $where, string $table): void;
                                                                                                                                                                                                                                                                                                          41
                                                                                                                                                                                                                                                                                                          42    /**
                                                                                                                                                                                                                                                                                                          43     * @psalm-param array<array-key, array<(float|int|string|\sql\MydbExpressionInterface|null)>> $data
                                                                                                                                                                                                                                                                                                          44     * @param array<string> $cols
                                                                                                                                                                                                                                                                                                          45     */
                                                                                                                                                                                                                                                                                                          46    public function insertMany(
                                                                                                                                                                                                                                                                                                          47        array $data,
                                                                                                                                                                                                                                                                                                          48        array $cols,
                                                                                                                                                                                                                                                                                                          49        string $table,
                                                                                                                                                                                                                                                                                                          50        bool $ignore = false,
                                                                                                                                                                                                                                                                                                          51        string $onDuplicateSql = '',
                                                                                                                                                                                                                                                                                                          52    ): void;
                                                                                                                                                                                                                                                                                                          53
                                                                                                                                                                                                                                                                                                          54    /**
                                                                                                                                                                                                                                                                                                          55     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          56     */
                                                                                                                                                                                                                                                                                                          57    public function insertOne(array $data, string $table): ?string;
                                                                                                                                                                                                                                                                                                          58
                                                                                                                                                                                                                                                                                                          59    /**
                                                                                                                                                                                                                                                                                                          60     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          61     */
                                                                                                                                                                                                                                                                                                          62    public function replaceOne(array $data, string $table): ?string;
                                                                                                                                                                                                                                                                                                          63
                                                                                                                                                                                                                                                                                                          64    public function select(string $query): ?array;
                                                                                                                                                                                                                                                                                                          65
                                                                                                                                                                                                                                                                                                          66    public function insert(string $query): ?string;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    public function update(string $query): ?int;
                                                                                                                                                                                                                                                                                                          69
                                                                                                                                                                                                                                                                                                          70    public function delete(string $query): ?int;
                                                                                                                                                                                                                                                                                                          71
                                                                                                                                                                                                                                                                                                          72    public function replace(string $query): ?string;
                                                                                                                                                                                                                                                                                                          73}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/EncoderInterface.php.html b/php/phpunit/html/MydbInterface/EncoderInterface.php.html new file mode 100644 index 00000000000..710be5ba1e9 --- /dev/null +++ b/php/phpunit/html/MydbInterface/EncoderInterface.php.html @@ -0,0 +1,120 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/EncoderInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 * @phpcs:disable SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName
                                                                                                                                                                                                                                                                                                          24 */
                                                                                                                                                                                                                                                                                                          25interface EncoderInterface
                                                                                                                                                                                                                                                                                                          26{
                                                                                                                                                                                                                                                                                                          27    /**
                                                                                                                                                                                                                                                                                                          28     * Escape value for the SQL query
                                                                                                                                                                                                                                                                                                          29     *
                                                                                                                                                                                                                                                                                                          30     * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped
                                                                                                                                                                                                                                                                                                          31     */
                                                                                                                                                                                                                                                                                                          32    public function escape($unescaped, string $quote = "'"): string;
                                                                                                                                                                                                                                                                                                          33}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/QueryInterface.php.html b/php/phpunit/html/MydbInterface/QueryInterface.php.html new file mode 100644 index 00000000000..cfb70f2442e --- /dev/null +++ b/php/phpunit/html/MydbInterface/QueryInterface.php.html @@ -0,0 +1,117 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/QueryInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24interface QueryInterface
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26    /**
                                                                                                                                                                                                                                                                                                          27     * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint
                                                                                                                                                                                                                                                                                                          28     */
                                                                                                                                                                                                                                                                                                          29    public function query(string $query): ?array;
                                                                                                                                                                                                                                                                                                          30}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/RemoteResourceInterface.php.html b/php/phpunit/html/MydbInterface/RemoteResourceInterface.php.html new file mode 100644 index 00000000000..240543704e0 --- /dev/null +++ b/php/phpunit/html/MydbInterface/RemoteResourceInterface.php.html @@ -0,0 +1,123 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/RemoteResourceInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24interface RemoteResourceInterface
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26    /**
                                                                                                                                                                                                                                                                                                          27     * Open remote server connection
                                                                                                                                                                                                                                                                                                          28     */
                                                                                                                                                                                                                                                                                                          29    public function open(): bool;
                                                                                                                                                                                                                                                                                                          30
                                                                                                                                                                                                                                                                                                          31    /**
                                                                                                                                                                                                                                                                                                          32     * Cleanup remote server connection
                                                                                                                                                                                                                                                                                                          33     * will NOT close persistent connections
                                                                                                                                                                                                                                                                                                          34     */
                                                                                                                                                                                                                                                                                                          35    public function close(): void;
                                                                                                                                                                                                                                                                                                          36}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/TransactionInterface.php.html b/php/phpunit/html/MydbInterface/TransactionInterface.php.html new file mode 100644 index 00000000000..badb8be08c1 --- /dev/null +++ b/php/phpunit/html/MydbInterface/TransactionInterface.php.html @@ -0,0 +1,118 @@ + + + + + Code Coverage for /app/src/sql/MydbInterface/TransactionInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbInterface;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @category interfaces
                                                                                                                                                                                                                                                                                                          22 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          23 */
                                                                                                                                                                                                                                                                                                          24interface TransactionInterface
                                                                                                                                                                                                                                                                                                          25{
                                                                                                                                                                                                                                                                                                          26    public function beginTransaction(): void;
                                                                                                                                                                                                                                                                                                          27
                                                                                                                                                                                                                                                                                                          28    public function commitTransaction(): void;
                                                                                                                                                                                                                                                                                                          29
                                                                                                                                                                                                                                                                                                          30    public function rollbackTransaction(): void;
                                                                                                                                                                                                                                                                                                          31}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/dashboard.html b/php/phpunit/html/MydbInterface/dashboard.html new file mode 100644 index 00000000000..12e9c400b7c --- /dev/null +++ b/php/phpunit/html/MydbInterface/dashboard.html @@ -0,0 +1,284 @@ + + + + + Dashboard for /app/src/sql/MydbInterface + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbInterface/index.html b/php/phpunit/html/MydbInterface/index.html new file mode 100644 index 00000000000..e9c481dd62f --- /dev/null +++ b/php/phpunit/html/MydbInterface/index.html @@ -0,0 +1,118 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/MydbInterface

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AdministrationStatementsInterface.php.html

                                                                                                                                                                                                                                                                                                          AdministrationStatementsInterface.php.html +
                                                                                                                                                                                                                                                                                                          12 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AsyncInterface.php.html

                                                                                                                                                                                                                                                                                                          AsyncInterface.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          CommandInterface.php.html

                                                                                                                                                                                                                                                                                                          CommandInterface.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DataManipulationStatementsInterface.php.html

                                                                                                                                                                                                                                                                                                          DataManipulationStatementsInterface.php.html +
                                                                                                                                                                                                                                                                                                          26 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EncoderInterface.php.html

                                                                                                                                                                                                                                                                                                          EncoderInterface.php.html +
                                                                                                                                                                                                                                                                                                          11 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryInterface.php.html

                                                                                                                                                                                                                                                                                                          QueryInterface.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          RemoteResourceInterface.php.html

                                                                                                                                                                                                                                                                                                          RemoteResourceInterface.php.html +
                                                                                                                                                                                                                                                                                                          11 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionInterface.php.html

                                                                                                                                                                                                                                                                                                          TransactionInterface.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/MydbListener.php.html b/php/phpunit/html/MydbListener.php.html new file mode 100644 index 00000000000..500513b412a --- /dev/null +++ b/php/phpunit/html/MydbListener.php.html @@ -0,0 +1,190 @@ + + + + + Code Coverage for /app/src/sql/MydbListener.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbListener
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           onEvent
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                           observe
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18abstract class MydbListener implements MydbListenerInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    abstract protected function onEvent(MydbEventMetadataInterface $event): ?bool;
                                                                                                                                                                                                                                                                                                          21
                                                                                                                                                                                                                                                                                                          22    public function observe(MydbEventMetadataInterface $event): bool
                                                                                                                                                                                                                                                                                                          23    {
                                                                                                                                                                                                                                                                                                          24        return false !== $this->onEvent($event);
                                                                                                                                                                                                                                                                                                          25    }
                                                                                                                                                                                                                                                                                                          26}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbListener/InternalListener.php.html b/php/phpunit/html/MydbListener/InternalListener.php.html new file mode 100644 index 00000000000..cd2d2fafaba --- /dev/null +++ b/php/phpunit/html/MydbListener/InternalListener.php.html @@ -0,0 +1,221 @@ + + + + + Code Coverage for /app/src/sql/MydbListener/InternalListener.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          InternalListener
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           onEvent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbListener;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use Psr\Log\LoggerInterface;
                                                                                                                                                                                                                                                                                                          19use sql\MydbEvent\InternalConnectionBegin;
                                                                                                                                                                                                                                                                                                          20use sql\MydbEvent\InternalConnectionEnd;
                                                                                                                                                                                                                                                                                                          21use sql\MydbEventMetadataInterface;
                                                                                                                                                                                                                                                                                                          22use sql\MydbListener;
                                                                                                                                                                                                                                                                                                          23use function in_array;
                                                                                                                                                                                                                                                                                                          24use function is_array;
                                                                                                                                                                                                                                                                                                          25use function is_null;
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27class InternalListener extends MydbListener
                                                                                                                                                                                                                                                                                                          28{
                                                                                                                                                                                                                                                                                                          29
                                                                                                                                                                                                                                                                                                          30    public function __construct(protected ?LoggerInterface $logger = null)
                                                                                                                                                                                                                                                                                                          31    {
                                                                                                                                                                                                                                                                                                          32    }
                                                                                                                                                                                                                                                                                                          33
                                                                                                                                                                                                                                                                                                          34    protected function onEvent(MydbEventMetadataInterface $event): ?bool
                                                                                                                                                                                                                                                                                                          35    {
                                                                                                                                                                                                                                                                                                          36        if (in_array($event->getEventName(), [InternalConnectionBegin::class, InternalConnectionEnd::class], true)) {
                                                                                                                                                                                                                                                                                                          37            if ($this->logger) {
                                                                                                                                                                                                                                                                                                          38                $this->logger->debug(
                                                                                                                                                                                                                                                                                                          39                    'Received event: ' . $event->getEventName()
                                                                                                                                                                                                                                                                                                          40                );
                                                                                                                                                                                                                                                                                                          41            }
                                                                                                                                                                                                                                                                                                          42        }
                                                                                                                                                                                                                                                                                                          43
                                                                                                                                                                                                                                                                                                          44        return is_array($event->getEventMetadata()) || is_null($event->getEventMetadata());
                                                                                                                                                                                                                                                                                                          45    }
                                                                                                                                                                                                                                                                                                          46}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbListener/dashboard.html b/php/phpunit/html/MydbListener/dashboard.html new file mode 100644 index 00000000000..34afb459acc --- /dev/null +++ b/php/phpunit/html/MydbListener/dashboard.html @@ -0,0 +1,284 @@ + + + + + Dashboard for /app/src/sql/MydbListener + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbListener/index.html b/php/phpunit/html/MydbListener/index.html new file mode 100644 index 00000000000..d7ae7779f1c --- /dev/null +++ b/php/phpunit/html/MydbListener/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/MydbListener

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalListener.php.html

                                                                                                                                                                                                                                                                                                          InternalListener.php.html +
                                                                                                                                                                                                                                                                                                          74 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/MydbListenerInterface.php.html b/php/phpunit/html/MydbListenerInterface.php.html new file mode 100644 index 00000000000..72bcf4769aa --- /dev/null +++ b/php/phpunit/html/MydbListenerInterface.php.html @@ -0,0 +1,107 @@ + + + + + Code Coverage for /app/src/sql/MydbListenerInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18interface MydbListenerInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function observe(MydbEventMetadataInterface $event): bool;
                                                                                                                                                                                                                                                                                                          21}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbLogger.php.html b/php/phpunit/html/MydbLogger.php.html new file mode 100644 index 00000000000..b0e5b1d9c48 --- /dev/null +++ b/php/phpunit/html/MydbLogger.php.html @@ -0,0 +1,802 @@ + + + + + Code Coverage for /app/src/sql/MydbLogger.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          61 / 61
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbLogger
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          61 / 61
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          42
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           __destruct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           error
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           log
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           warning
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           emergency
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           alert
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           critical
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           notice
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           info
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           debug
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           checkStreamResource
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          7
                                                                                                                                                                                                                                                                                                           writeOutput
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          13 / 13
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          9
                                                                                                                                                                                                                                                                                                           fwrite
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          9 / 9
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           formatter
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use Psr\Log\LoggerInterface;
                                                                                                                                                                                                                                                                                                          19use Psr\Log\LogLevel;
                                                                                                                                                                                                                                                                                                          20use sql\MydbException\LoggerException;
                                                                                                                                                                                                                                                                                                          21use function clearstatcache;
                                                                                                                                                                                                                                                                                                          22use function count;
                                                                                                                                                                                                                                                                                                          23use function fclose;
                                                                                                                                                                                                                                                                                                          24use function feof;
                                                                                                                                                                                                                                                                                                          25use function fflush;
                                                                                                                                                                                                                                                                                                          26use function fwrite;
                                                                                                                                                                                                                                                                                                          27use function is_resource;
                                                                                                                                                                                                                                                                                                          28use function is_scalar;
                                                                                                                                                                                                                                                                                                          29use function restore_error_handler;
                                                                                                                                                                                                                                                                                                          30use function set_error_handler;
                                                                                                                                                                                                                                                                                                          31use function stream_get_meta_data;
                                                                                                                                                                                                                                                                                                          32use function strlen;
                                                                                                                                                                                                                                                                                                          33use function strtr;
                                                                                                                                                                                                                                                                                                          34use function substr;
                                                                                                                                                                                                                                                                                                          35use function var_export;
                                                                                                                                                                                                                                                                                                          36use const PHP_EOL;
                                                                                                                                                                                                                                                                                                          37use const STDERR;
                                                                                                                                                                                                                                                                                                          38use const STDOUT;
                                                                                                                                                                                                                                                                                                          39
                                                                                                                                                                                                                                                                                                          40/**
                                                                                                                                                                                                                                                                                                          41 * Implementation of PSR-3 Logger that will output to STDERR & STDOUT
                                                                                                                                                                                                                                                                                                          42 *
                                                                                                                                                                                                                                                                                                          43 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          44 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          45 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          46 * @see https://www.php-fig.org/psr/psr-3/
                                                                                                                                                                                                                                                                                                          47 */
                                                                                                                                                                                                                                                                                                          48class MydbLogger implements LoggerInterface
                                                                                                                                                                                                                                                                                                          49{
                                                                                                                                                                                                                                                                                                          50    protected const IO_WRITE_ATTEMPTS = 3;
                                                                                                                                                                                                                                                                                                          51
                                                                                                                                                                                                                                                                                                          52    /**
                                                                                                                                                                                                                                                                                                          53     * Opened resource, STDOUT
                                                                                                                                                                                                                                                                                                          54     * @see https://www.php.net/manual/en/features.commandline.io-streams.php
                                                                                                                                                                                                                                                                                                          55     *
                                                                                                                                                                                                                                                                                                          56     * @var resource
                                                                                                                                                                                                                                                                                                          57     */
                                                                                                                                                                                                                                                                                                          58    protected $stdout;
                                                                                                                                                                                                                                                                                                          59
                                                                                                                                                                                                                                                                                                          60    /**
                                                                                                                                                                                                                                                                                                          61     * Opened resource, STDERR
                                                                                                                                                                                                                                                                                                          62     * @see https://www.php.net/manual/en/features.commandline.io-streams.php
                                                                                                                                                                                                                                                                                                          63     *
                                                                                                                                                                                                                                                                                                          64     * @var resource
                                                                                                                                                                                                                                                                                                          65     */
                                                                                                                                                                                                                                                                                                          66    protected $stderr;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    /**
                                                                                                                                                                                                                                                                                                          69     * End of line delimiter
                                                                                                                                                                                                                                                                                                          70     */
                                                                                                                                                                                                                                                                                                          71    protected string $stdeol = PHP_EOL;
                                                                                                                                                                                                                                                                                                          72
                                                                                                                                                                                                                                                                                                          73    /**
                                                                                                                                                                                                                                                                                                          74     * @param resource $stdout
                                                                                                                                                                                                                                                                                                          75     * @param resource $stderr
                                                                                                                                                                                                                                                                                                          76     * @psalm-suppress MissingParamType
                                                                                                                                                                                                                                                                                                          77     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          78     */
                                                                                                                                                                                                                                                                                                          79    public function __construct($stdout = STDOUT, $stderr = STDERR, string $stdeol = PHP_EOL)
                                                                                                                                                                                                                                                                                                          80    {
                                                                                                                                                                                                                                                                                                          81        /**
                                                                                                                                                                                                                                                                                                          82         * @psalm-suppress DocblockTypeContradiction
                                                                                                                                                                                                                                                                                                          83         */
                                                                                                                                                                                                                                                                                                          84        if (!is_resource($stdout) || !is_resource($stderr)) {
                                                                                                                                                                                                                                                                                                          85            throw new LoggerException();
                                                                                                                                                                                                                                                                                                          86        }
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          88        $this->stdout = $stdout;
                                                                                                                                                                                                                                                                                                          89        $this->stderr = $stderr;
                                                                                                                                                                                                                                                                                                          90        $this->stdeol = $stdeol;
                                                                                                                                                                                                                                                                                                          91    }
                                                                                                                                                                                                                                                                                                          92
                                                                                                                                                                                                                                                                                                          93    public function __destruct()
                                                                                                                                                                                                                                                                                                          94    {
                                                                                                                                                                                                                                                                                                          95        /**
                                                                                                                                                                                                                                                                                                          96         * @psalm-suppress RedundantConditionGivenDocblockType
                                                                                                                                                                                                                                                                                                          97         */
                                                                                                                                                                                                                                                                                                          98        if (is_resource($this->stdout)) {
                                                                                                                                                                                                                                                                                                          99            fflush($this->stdout);
                                                                                                                                                                                                                                                                                                          100            fclose($this->stdout);
                                                                                                                                                                                                                                                                                                          101        }
                                                                                                                                                                                                                                                                                                          102
                                                                                                                                                                                                                                                                                                          103        /**
                                                                                                                                                                                                                                                                                                          104         * @psalm-suppress RedundantConditionGivenDocblockType
                                                                                                                                                                                                                                                                                                          105         */
                                                                                                                                                                                                                                                                                                          106        if (is_resource($this->stderr)) {
                                                                                                                                                                                                                                                                                                          107            fflush($this->stderr);
                                                                                                                                                                                                                                                                                                          108            fclose($this->stderr);
                                                                                                                                                                                                                                                                                                          109        }
                                                                                                                                                                                                                                                                                                          110        clearstatcache();
                                                                                                                                                                                                                                                                                                          111    }
                                                                                                                                                                                                                                                                                                          112
                                                                                                                                                                                                                                                                                                          113    /**
                                                                                                                                                                                                                                                                                                          114     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          115     * @param array|string $message
                                                                                                                                                                                                                                                                                                          116     */
                                                                                                                                                                                                                                                                                                          117    public function error($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          118    {
                                                                                                                                                                                                                                                                                                          119        if ([] !== $message && '' !== $message) {
                                                                                                                                                                                                                                                                                                          120            $this->writeOutput($this->stderr, static::formatter($message) . $this->stdeol);
                                                                                                                                                                                                                                                                                                          121        }
                                                                                                                                                                                                                                                                                                          122
                                                                                                                                                                                                                                                                                                          123        if (!count($context)) {
                                                                                                                                                                                                                                                                                                          124            return;
                                                                                                                                                                                                                                                                                                          125        }
                                                                                                                                                                                                                                                                                                          126
                                                                                                                                                                                                                                                                                                          127        $this->writeOutput($this->stderr, static::formatter($context) . $this->stdeol);
                                                                                                                                                                                                                                                                                                          128    }
                                                                                                                                                                                                                                                                                                          129
                                                                                                                                                                                                                                                                                                          130    /**
                                                                                                                                                                                                                                                                                                          131     * @param mixed $level
                                                                                                                                                                                                                                                                                                          132     * @param array|string $message
                                                                                                                                                                                                                                                                                                          133     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          134     * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter
                                                                                                                                                                                                                                                                                                          135     */
                                                                                                                                                                                                                                                                                                          136    public function log($level, $message, array $context = []): void
                                                                                                                                                                                                                                                                                                          137    {
                                                                                                                                                                                                                                                                                                          138        if ([] !== $message && '' !== $message) {
                                                                                                                                                                                                                                                                                                          139            $this->writeOutput($this->stdout, static::formatter($message) . $this->stdeol);
                                                                                                                                                                                                                                                                                                          140        }
                                                                                                                                                                                                                                                                                                          141
                                                                                                                                                                                                                                                                                                          142        if (!count($context)) {
                                                                                                                                                                                                                                                                                                          143            return;
                                                                                                                                                                                                                                                                                                          144        }
                                                                                                                                                                                                                                                                                                          145
                                                                                                                                                                                                                                                                                                          146        $this->writeOutput($this->stdout, static::formatter($context) . $this->stdeol);
                                                                                                                                                                                                                                                                                                          147    }
                                                                                                                                                                                                                                                                                                          148
                                                                                                                                                                                                                                                                                                          149    /**
                                                                                                                                                                                                                                                                                                          150     * @param array|string $message
                                                                                                                                                                                                                                                                                                          151     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          152     */
                                                                                                                                                                                                                                                                                                          153    public function warning($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          154    {
                                                                                                                                                                                                                                                                                                          155        $this->error($message, $context);
                                                                                                                                                                                                                                                                                                          156    }
                                                                                                                                                                                                                                                                                                          157
                                                                                                                                                                                                                                                                                                          158    /**
                                                                                                                                                                                                                                                                                                          159     * @param array|string $message
                                                                                                                                                                                                                                                                                                          160     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          161     */
                                                                                                                                                                                                                                                                                                          162    public function emergency($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          163    {
                                                                                                                                                                                                                                                                                                          164        $this->error($message, $context);
                                                                                                                                                                                                                                                                                                          165    }
                                                                                                                                                                                                                                                                                                          166
                                                                                                                                                                                                                                                                                                          167    /**
                                                                                                                                                                                                                                                                                                          168     * @param array|string $message
                                                                                                                                                                                                                                                                                                          169     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          170     */
                                                                                                                                                                                                                                                                                                          171    public function alert($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          172    {
                                                                                                                                                                                                                                                                                                          173        $this->error($message, $context);
                                                                                                                                                                                                                                                                                                          174    }
                                                                                                                                                                                                                                                                                                          175
                                                                                                                                                                                                                                                                                                          176    /**
                                                                                                                                                                                                                                                                                                          177     * @param array|string $message
                                                                                                                                                                                                                                                                                                          178     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          179     */
                                                                                                                                                                                                                                                                                                          180    public function critical($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          181    {
                                                                                                                                                                                                                                                                                                          182        $this->error($message, $context);
                                                                                                                                                                                                                                                                                                          183    }
                                                                                                                                                                                                                                                                                                          184
                                                                                                                                                                                                                                                                                                          185    /**
                                                                                                                                                                                                                                                                                                          186     * @param array|string $message
                                                                                                                                                                                                                                                                                                          187     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          188     */
                                                                                                                                                                                                                                                                                                          189    public function notice($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          190    {
                                                                                                                                                                                                                                                                                                          191        $this->log(LogLevel::NOTICE, $message, $context);
                                                                                                                                                                                                                                                                                                          192    }
                                                                                                                                                                                                                                                                                                          193
                                                                                                                                                                                                                                                                                                          194    /**
                                                                                                                                                                                                                                                                                                          195     * @param array|string $message
                                                                                                                                                                                                                                                                                                          196     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          197     */
                                                                                                                                                                                                                                                                                                          198    public function info($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          199    {
                                                                                                                                                                                                                                                                                                          200        $this->log(LogLevel::INFO, $message, $context);
                                                                                                                                                                                                                                                                                                          201    }
                                                                                                                                                                                                                                                                                                          202
                                                                                                                                                                                                                                                                                                          203    /**
                                                                                                                                                                                                                                                                                                          204     * @param array|string $message
                                                                                                                                                                                                                                                                                                          205     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          206     */
                                                                                                                                                                                                                                                                                                          207    public function debug($message, array $context = []): void
                                                                                                                                                                                                                                                                                                          208    {
                                                                                                                                                                                                                                                                                                          209        $this->log(LogLevel::DEBUG, $message, $context);
                                                                                                                                                                                                                                                                                                          210    }
                                                                                                                                                                                                                                                                                                          211
                                                                                                                                                                                                                                                                                                          212    /**
                                                                                                                                                                                                                                                                                                          213     * @param resource $stream &fs.file.pointer;
                                                                                                                                                                                                                                                                                                          214     * @link https://php.net/manual/en/function.fwrite.php
                                                                                                                                                                                                                                                                                                          215     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          216     */
                                                                                                                                                                                                                                                                                                          217    protected function checkStreamResource($stream): void
                                                                                                                                                                                                                                                                                                          218    {
                                                                                                                                                                                                                                                                                                          219        /**
                                                                                                                                                                                                                                                                                                          220         * is_resource checks whether resource was closed with i.e. fclose()
                                                                                                                                                                                                                                                                                                          221         * @psalm-suppress DocblockTypeContradiction
                                                                                                                                                                                                                                                                                                          222         * @psalm-suppress RedundantConditionGivenDocblockType
                                                                                                                                                                                                                                                                                                          223         */
                                                                                                                                                                                                                                                                                                          224        if (false === is_resource($stream)) {
                                                                                                                                                                                                                                                                                                          225            throw new LoggerException('Stream resource is not valid or already closed');
                                                                                                                                                                                                                                                                                                          226        }
                                                                                                                                                                                                                                                                                                          227
                                                                                                                                                                                                                                                                                                          228        $info = stream_get_meta_data($stream);
                                                                                                                                                                                                                                                                                                          229
                                                                                                                                                                                                                                                                                                          230        if ($info['timed_out'] || $info['eof'] || feof($stream)) {
                                                                                                                                                                                                                                                                                                          231            throw new LoggerException();
                                                                                                                                                                                                                                                                                                          232        }
                                                                                                                                                                                                                                                                                                          233
                                                                                                                                                                                                                                                                                                          234        if ('' !== $info['mode'] && strtr($info['mode'], 'waxc+', '.....') === $info['mode']) {
                                                                                                                                                                                                                                                                                                          235            throw new LoggerException('Stream resource is not opened in write mode');
                                                                                                                                                                                                                                                                                                          236        }
                                                                                                                                                                                                                                                                                                          237    }
                                                                                                                                                                                                                                                                                                          238
                                                                                                                                                                                                                                                                                                          239    /**
                                                                                                                                                                                                                                                                                                          240     * @param resource $stream &fs.file.pointer;
                                                                                                                                                                                                                                                                                                          241     * @link https://php.net/manual/en/function.fwrite.php
                                                                                                                                                                                                                                                                                                          242     * @throws \sql\MydbException\LoggerException
                                                                                                                                                                                                                                                                                                          243     * @psalm-suppress MissingParamType
                                                                                                                                                                                                                                                                                                          244     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh
                                                                                                                                                                                                                                                                                                          245     */
                                                                                                                                                                                                                                                                                                          246    protected function writeOutput($stream, string $data = ''): void
                                                                                                                                                                                                                                                                                                          247    {
                                                                                                                                                                                                                                                                                                          248        $this->checkStreamResource($stream);
                                                                                                                                                                                                                                                                                                          249
                                                                                                                                                                                                                                                                                                          250        $tries = self::IO_WRITE_ATTEMPTS;
                                                                                                                                                                                                                                                                                                          251        $len = strlen($data);
                                                                                                                                                                                                                                                                                                          252
                                                                                                                                                                                                                                                                                                          253        /** @phan-suppress-next-line PhanNoopConstant */
                                                                                                                                                                                                                                                                                                          254        for ($written = 0; $written < $len; true) {
                                                                                                                                                                                                                                                                                                          255            $chunk = substr($data, $written);
                                                                                                                                                                                                                                                                                                          256            if ('' === $chunk) {
                                                                                                                                                                                                                                                                                                          257                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          258                throw new LoggerException();
                                                                                                                                                                                                                                                                                                          259                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          260            }
                                                                                                                                                                                                                                                                                                          261
                                                                                                                                                                                                                                                                                                          262            $writeResult = $this->fwrite($stream, $chunk);
                                                                                                                                                                                                                                                                                                          263
                                                                                                                                                                                                                                                                                                          264            if (null === $writeResult || feof($stream)) {
                                                                                                                                                                                                                                                                                                          265                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          266                throw new LoggerException();
                                                                                                                                                                                                                                                                                                          267                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          268            }
                                                                                                                                                                                                                                                                                                          269
                                                                                                                                                                                                                                                                                                          270            if (false === fflush($stream)) {
                                                                                                                                                                                                                                                                                                          271                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          272                throw new LoggerException();
                                                                                                                                                                                                                                                                                                          273                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          274            }
                                                                                                                                                                                                                                                                                                          275
                                                                                                                                                                                                                                                                                                          276            $written += $writeResult;
                                                                                                                                                                                                                                                                                                          277
                                                                                                                                                                                                                                                                                                          278            if ($written < $len) {
                                                                                                                                                                                                                                                                                                          279                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          280                throw new LoggerException();
                                                                                                                                                                                                                                                                                                          281                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          282            }
                                                                                                                                                                                                                                                                                                          283
                                                                                                                                                                                                                                                                                                          284            if (0 === $writeResult) {
                                                                                                                                                                                                                                                                                                          285                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          286                --$tries;
                                                                                                                                                                                                                                                                                                          287                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          288            }
                                                                                                                                                                                                                                                                                                          289
                                                                                                                                                                                                                                                                                                          290            if ($tries <= 0) {
                                                                                                                                                                                                                                                                                                          291                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          292                throw new LoggerException();
                                                                                                                                                                                                                                                                                                          293                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          294            }
                                                                                                                                                                                                                                                                                                          295        }
                                                                                                                                                                                                                                                                                                          296    }
                                                                                                                                                                                                                                                                                                          297
                                                                                                                                                                                                                                                                                                          298    /**
                                                                                                                                                                                                                                                                                                          299     * @param resource $stream
                                                                                                                                                                                                                                                                                                          300     */
                                                                                                                                                                                                                                                                                                          301    protected function fwrite($stream, string $data): ?int
                                                                                                                                                                                                                                                                                                          302    {
                                                                                                                                                                                                                                                                                                          303        $error = null;
                                                                                                                                                                                                                                                                                                          304
                                                                                                                                                                                                                                                                                                          305        /**
                                                                                                                                                                                                                                                                                                          306         * @psalm-suppress InvalidArgument
                                                                                                                                                                                                                                                                                                          307         */
                                                                                                                                                                                                                                                                                                          308        set_error_handler(
                                                                                                                                                                                                                                                                                                          309            static function ($_, string $errstr) use (&$error): bool {
                                                                                                                                                                                                                                                                                                          310                // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          311                $error = $errstr;
                                                                                                                                                                                                                                                                                                          312
                                                                                                                                                                                                                                                                                                          313                return true;
                                                                                                                                                                                                                                                                                                          314                // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          315            }
                                                                                                                                                                                                                                                                                                          316        );
                                                                                                                                                                                                                                                                                                          317
                                                                                                                                                                                                                                                                                                          318        $sent = fwrite($stream, $data);
                                                                                                                                                                                                                                                                                                          319
                                                                                                                                                                                                                                                                                                          320        restore_error_handler();
                                                                                                                                                                                                                                                                                                          321
                                                                                                                                                                                                                                                                                                          322        if (null !== $error || false === $sent) {
                                                                                                                                                                                                                                                                                                          323            // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          324            return null;
                                                                                                                                                                                                                                                                                                          325            // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          326        }
                                                                                                                                                                                                                                                                                                          327
                                                                                                                                                                                                                                                                                                          328        return $sent;
                                                                                                                                                                                                                                                                                                          329    }
                                                                                                                                                                                                                                                                                                          330
                                                                                                                                                                                                                                                                                                          331    /**
                                                                                                                                                                                                                                                                                                          332     * @param string|array $var
                                                                                                                                                                                                                                                                                                          333     */
                                                                                                                                                                                                                                                                                                          334    protected static function formatter($var): string
                                                                                                                                                                                                                                                                                                          335    {
                                                                                                                                                                                                                                                                                                          336        if (is_scalar($var)) {
                                                                                                                                                                                                                                                                                                          337            return $var;
                                                                                                                                                                                                                                                                                                          338        }
                                                                                                                                                                                                                                                                                                          339
                                                                                                                                                                                                                                                                                                          340        return var_export($var, true);
                                                                                                                                                                                                                                                                                                          341    }
                                                                                                                                                                                                                                                                                                          342}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli.php.html b/php/phpunit/html/MydbMysqli.php.html new file mode 100644 index 00000000000..c4969e0d7f6 --- /dev/null +++ b/php/phpunit/html/MydbMysqli.php.html @@ -0,0 +1,1397 @@ + + + + + Code Coverage for /app/src/sql/MydbMysqli.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          146 / 146
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          30 / 30
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbMysqli
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          146 / 146
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          30 / 30
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           init
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           setTransportOptions
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          17 / 17
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          8
                                                                                                                                                                                                                                                                                                           setTransactionIsolationLevel
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           isTransactionOpen
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           isConnected
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getMysqli
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           realQuery
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           readServerResponse
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          18 / 18
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          8
                                                                                                                                                                                                                                                                                                           realEscapeString
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           beginTransactionReadwrite
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           beginTransactionReadonly
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           rollback
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           commitAndRelease
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           commit
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           realConnect
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          12 / 12
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           mysqliReport
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           close
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getConnectErrno
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getConnectError
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           isServerGone
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getError
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getErrNo
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getAffectedRows
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           getInsertId
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           autocommit
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          5 / 5
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           extractServerResponse
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          11 / 11
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getWarnings
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getFieldCount
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getWarningCount
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use mysqli;
                                                                                                                                                                                                                                                                                                          19use mysqli_result;
                                                                                                                                                                                                                                                                                                          20use sql\MydbMysqli\MydbMysqliResult;
                                                                                                                                                                                                                                                                                                          21use function array_merge;
                                                                                                                                                                                                                                                                                                          22use function array_values;
                                                                                                                                                                                                                                                                                                          23use function in_array;
                                                                                                                                                                                                                                                                                                          24use function max;
                                                                                                                                                                                                                                                                                                          25use function mysqli_report;
                                                                                                                                                                                                                                                                                                          26use function sprintf;
                                                                                                                                                                                                                                                                                                          27use const MYSQLI_INIT_COMMAND;
                                                                                                                                                                                                                                                                                                          28use const MYSQLI_OPT_CONNECT_TIMEOUT;
                                                                                                                                                                                                                                                                                                          29use const MYSQLI_OPT_NET_CMD_BUFFER_SIZE;
                                                                                                                                                                                                                                                                                                          30use const MYSQLI_OPT_NET_READ_BUFFER_SIZE;
                                                                                                                                                                                                                                                                                                          31use const MYSQLI_OPT_READ_TIMEOUT;
                                                                                                                                                                                                                                                                                                          32use const MYSQLI_REPORT_ALL;
                                                                                                                                                                                                                                                                                                          33use const MYSQLI_REPORT_INDEX;
                                                                                                                                                                                                                                                                                                          34use const MYSQLI_REPORT_STRICT;
                                                                                                                                                                                                                                                                                                          35use const MYSQLI_STORE_RESULT_COPY_DATA;
                                                                                                                                                                                                                                                                                                          36use const MYSQLI_TRANS_COR_NO_RELEASE;
                                                                                                                                                                                                                                                                                                          37use const MYSQLI_TRANS_COR_RELEASE;
                                                                                                                                                                                                                                                                                                          38use const MYSQLI_TRANS_START_READ_ONLY;
                                                                                                                                                                                                                                                                                                          39use const MYSQLI_TRANS_START_READ_WRITE;
                                                                                                                                                                                                                                                                                                          40
                                                                                                                                                                                                                                                                                                          41/**
                                                                                                                                                                                                                                                                                                          42 * Facade for php mysqli extension
                                                                                                                                                                                                                                                                                                          43 *
                                                                                                                                                                                                                                                                                                          44 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          45 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          46 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          47 * @see https://www.php.net/manual/en/class.mysqli
                                                                                                                                                                                                                                                                                                          48 */
                                                                                                                                                                                                                                                                                                          49class MydbMysqli implements MydbMysqliInterface
                                                                                                                                                                                                                                                                                                          50{
                                                                                                                                                                                                                                                                                                          51    /**
                                                                                                                                                                                                                                                                                                          52     * Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
                                                                                                                                                                                                                                                                                                          53     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          54     */
                                                                                                                                                                                                                                                                                                          55    public const MYSQLI_INIT_COMMAND = MYSQLI_INIT_COMMAND;
                                                                                                                                                                                                                                                                                                          56
                                                                                                                                                                                                                                                                                                          57    /**
                                                                                                                                                                                                                                                                                                          58     * Connect timeout in seconds
                                                                                                                                                                                                                                                                                                          59     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          60     */
                                                                                                                                                                                                                                                                                                          61    public const MYSQLI_OPT_CONNECT_TIMEOUT = MYSQLI_OPT_CONNECT_TIMEOUT;
                                                                                                                                                                                                                                                                                                          62
                                                                                                                                                                                                                                                                                                          63    /**
                                                                                                                                                                                                                                                                                                          64     * The size of the internal command/network buffer. Only valid for mysqlnd.
                                                                                                                                                                                                                                                                                                          65     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          66     */
                                                                                                                                                                                                                                                                                                          67    public const MYSQLI_OPT_NET_CMD_BUFFER_SIZE = MYSQLI_OPT_NET_CMD_BUFFER_SIZE;
                                                                                                                                                                                                                                                                                                          68
                                                                                                                                                                                                                                                                                                          69    /**
                                                                                                                                                                                                                                                                                                          70     * Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.
                                                                                                                                                                                                                                                                                                          71     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          72     */
                                                                                                                                                                                                                                                                                                          73    public const MYSQLI_OPT_NET_READ_BUFFER_SIZE = MYSQLI_OPT_NET_READ_BUFFER_SIZE;
                                                                                                                                                                                                                                                                                                          74
                                                                                                                                                                                                                                                                                                          75    /**
                                                                                                                                                                                                                                                                                                          76     * Command execution result timeout in seconds. Available as of PHP 7.2.0.
                                                                                                                                                                                                                                                                                                          77     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          78     */
                                                                                                                                                                                                                                                                                                          79    public const MYSQLI_OPT_READ_TIMEOUT = MYSQLI_OPT_READ_TIMEOUT;
                                                                                                                                                                                                                                                                                                          80
                                                                                                                                                                                                                                                                                                          81    /**
                                                                                                                                                                                                                                                                                                          82     * Copy results from the internal mysqlnd buffer into the PHP variables fetched.
                                                                                                                                                                                                                                                                                                          83     * By default, mysqlnd will use a reference logic to avoid copying and duplicating results
                                                                                                                                                                                                                                                                                                          84     * held in memory. For certain result sets, for example, result sets with many small rows,
                                                                                                                                                                                                                                                                                                          85     * the copy approach can reduce the overall memory usage because PHP variables holding
                                                                                                                                                                                                                                                                                                          86     * results may be released earlier (available with mysqlnd only)
                                                                                                                                                                                                                                                                                                          87     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          88     */
                                                                                                                                                                                                                                                                                                          89    public const MYSQLI_STORE_RESULT_COPY_DATA = MYSQLI_STORE_RESULT_COPY_DATA;
                                                                                                                                                                                                                                                                                                          90
                                                                                                                                                                                                                                                                                                          91    /**
                                                                                                                                                                                                                                                                                                          92     * Appends "RELEASE" to mysqli_commit() or mysqli_rollback().
                                                                                                                                                                                                                                                                                                          93     * The RELEASE clause causes the server to disconnect the current client session
                                                                                                                                                                                                                                                                                                          94     * after terminating the current transaction
                                                                                                                                                                                                                                                                                                          95     *
                                                                                                                                                                                                                                                                                                          96     * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html
                                                                                                                                                                                                                                                                                                          97     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          98     */
                                                                                                                                                                                                                                                                                                          99    public const MYSQLI_TRANS_COR_RELEASE = MYSQLI_TRANS_COR_RELEASE;
                                                                                                                                                                                                                                                                                                          100
                                                                                                                                                                                                                                                                                                          101    /**
                                                                                                                                                                                                                                                                                                          102     * Start the transaction as "START TRANSACTION READ ONLY" with mysqli_begin_transaction().
                                                                                                                                                                                                                                                                                                          103     *
                                                                                                                                                                                                                                                                                                          104     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          105     */
                                                                                                                                                                                                                                                                                                          106    public const MYSQLI_TRANS_START_READ_ONLY = MYSQLI_TRANS_START_READ_ONLY;
                                                                                                                                                                                                                                                                                                          107
                                                                                                                                                                                                                                                                                                          108    /**
                                                                                                                                                                                                                                                                                                          109     * Start the transaction as "START TRANSACTION READ WRITE" with mysqli_begin_transaction().
                                                                                                                                                                                                                                                                                                          110     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          111     */
                                                                                                                                                                                                                                                                                                          112    public const MYSQLI_TRANS_START_READ_WRITE = MYSQLI_TRANS_START_READ_WRITE;
                                                                                                                                                                                                                                                                                                          113
                                                                                                                                                                                                                                                                                                          114    /**
                                                                                                                                                                                                                                                                                                          115     * Appends "NO RELEASE" to mysqli_commit() or mysqli_rollback().
                                                                                                                                                                                                                                                                                                          116     * The NO RELEASE clause asks the server to not disconnect the current client session
                                                                                                                                                                                                                                                                                                          117     * after terminating the current transaction
                                                                                                                                                                                                                                                                                                          118     *
                                                                                                                                                                                                                                                                                                          119     * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html
                                                                                                                                                                                                                                                                                                          120     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          121     */
                                                                                                                                                                                                                                                                                                          122    public const MYSQLI_TRANS_COR_NO_RELEASE = MYSQLI_TRANS_COR_NO_RELEASE;
                                                                                                                                                                                                                                                                                                          123
                                                                                                                                                                                                                                                                                                          124    /**
                                                                                                                                                                                                                                                                                                          125     * Set all options on (report all), report all warnings/errors.
                                                                                                                                                                                                                                                                                                          126     *
                                                                                                                                                                                                                                                                                                          127     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          128     */
                                                                                                                                                                                                                                                                                                          129    public const MYSQLI_REPORT_ALL = MYSQLI_REPORT_ALL;
                                                                                                                                                                                                                                                                                                          130
                                                                                                                                                                                                                                                                                                          131    /**
                                                                                                                                                                                                                                                                                                          132     * Report if no index or bad index was used in a query.
                                                                                                                                                                                                                                                                                                          133     *
                                                                                                                                                                                                                                                                                                          134     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          135     */
                                                                                                                                                                                                                                                                                                          136    public const MYSQLI_REPORT_INDEX = MYSQLI_REPORT_INDEX;
                                                                                                                                                                                                                                                                                                          137
                                                                                                                                                                                                                                                                                                          138    /**
                                                                                                                                                                                                                                                                                                          139     * Throw a mysqli_sql_exception for errors instead of warnings.
                                                                                                                                                                                                                                                                                                          140     *
                                                                                                                                                                                                                                                                                                          141     * @see https://www.php.net/manual/en/mysqli.constants.php
                                                                                                                                                                                                                                                                                                          142     */
                                                                                                                                                                                                                                                                                                          143    public const MYSQLI_REPORT_STRICT = MYSQLI_REPORT_STRICT;
                                                                                                                                                                                                                                                                                                          144
                                                                                                                                                                                                                                                                                                          145    /**
                                                                                                                                                                                                                                                                                                          146     * Safe MySQL SQL_MODE
                                                                                                                                                                                                                                                                                                          147     * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional
                                                                                                                                                                                                                                                                                                          148     */
                                                                                                                                                                                                                                                                                                          149    protected const SQL_MODE = 'TRADITIONAL';
                                                                                                                                                                                                                                                                                                          150
                                                                                                                                                                                                                                                                                                          151    /**
                                                                                                                                                                                                                                                                                                          152     * Mysqli instance
                                                                                                                                                                                                                                                                                                          153     * The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above
                                                                                                                                                                                                                                                                                                          154     *
                                                                                                                                                                                                                                                                                                          155     * @see http://dev.mysql.com/doc/
                                                                                                                                                                                                                                                                                                          156     * @see https://www.php.net/manual/en/mysqli.overview.php
                                                                                                                                                                                                                                                                                                          157     * @see https://www.php.net/manual/en/intro.mysqli.php
                                                                                                                                                                                                                                                                                                          158     * @see https://www.php.net/manual/en/class.mysqli
                                                                                                                                                                                                                                                                                                          159     */
                                                                                                                                                                                                                                                                                                          160    protected ?mysqli $mysqli = null;
                                                                                                                                                                                                                                                                                                          161
                                                                                                                                                                                                                                                                                                          162    /**
                                                                                                                                                                                                                                                                                                          163     * Flag indicating whether physical connection was established with remote server
                                                                                                                                                                                                                                                                                                          164     * Is connected to remove server
                                                                                                                                                                                                                                                                                                          165     */
                                                                                                                                                                                                                                                                                                          166    protected bool $isConnected = false;
                                                                                                                                                                                                                                                                                                          167
                                                                                                                                                                                                                                                                                                          168    /**
                                                                                                                                                                                                                                                                                                          169     * Flag indicating whether SQL transaction was started
                                                                                                                                                                                                                                                                                                          170     * WARNING: best-effort, only guaranteed when library is used correctly
                                                                                                                                                                                                                                                                                                          171     * Is transaction started
                                                                                                                                                                                                                                                                                                          172     */
                                                                                                                                                                                                                                                                                                          173    protected bool $isTransaction = false;
                                                                                                                                                                                                                                                                                                          174
                                                                                                                                                                                                                                                                                                          175    public function __construct(?mysqli $resource = null)
                                                                                                                                                                                                                                                                                                          176    {
                                                                                                                                                                                                                                                                                                          177        if (!$resource) {
                                                                                                                                                                                                                                                                                                          178            return;
                                                                                                                                                                                                                                                                                                          179        }
                                                                                                                                                                                                                                                                                                          180
                                                                                                                                                                                                                                                                                                          181        $this->mysqli = $resource;
                                                                                                                                                                                                                                                                                                          182    }
                                                                                                                                                                                                                                                                                                          183
                                                                                                                                                                                                                                                                                                          184    /**
                                                                                                                                                                                                                                                                                                          185     * Allocate mysqli resource instance, no physical connection to remote is done
                                                                                                                                                                                                                                                                                                          186     *
                                                                                                                                                                                                                                                                                                          187     */
                                                                                                                                                                                                                                                                                                          188    public function init(): bool
                                                                                                                                                                                                                                                                                                          189    {
                                                                                                                                                                                                                                                                                                          190        if (null !== $this->mysqli) {
                                                                                                                                                                                                                                                                                                          191            /**
                                                                                                                                                                                                                                                                                                          192             * Prevent zombie connections
                                                                                                                                                                                                                                                                                                          193             */
                                                                                                                                                                                                                                                                                                          194            return false;
                                                                                                                                                                                                                                                                                                          195        }
                                                                                                                                                                                                                                                                                                          196
                                                                                                                                                                                                                                                                                                          197        /**
                                                                                                                                                                                                                                                                                                          198         * @see https://php.net/manual/en/mysqli.construct.php
                                                                                                                                                                                                                                                                                                          199         * @see https://wiki.php.net/rfc/improve_mysqli
                                                                                                                                                                                                                                                                                                          200         */
                                                                                                                                                                                                                                                                                                          201        $init = new mysqli();
                                                                                                                                                                                                                                                                                                          202        $this->mysqli = $init;
                                                                                                                                                                                                                                                                                                          203
                                                                                                                                                                                                                                                                                                          204        return true;
                                                                                                                                                                                                                                                                                                          205    }
                                                                                                                                                                                                                                                                                                          206
                                                                                                                                                                                                                                                                                                          207    /**
                                                                                                                                                                                                                                                                                                          208     * Set various options that affect mysqli resource, before connection is established
                                                                                                                                                                                                                                                                                                          209     *
                                                                                                                                                                                                                                                                                                          210     * @see https://www.php.net/manual/en/mysqli.options.php
                                                                                                                                                                                                                                                                                                          211     * @throws \sql\MydbException\EnvironmentException
                                                                                                                                                                                                                                                                                                          212     */
                                                                                                                                                                                                                                                                                                          213    public function setTransportOptions(MydbOptionsInterface $options, MydbEnvironmentInterface $environment): bool
                                                                                                                                                                                                                                                                                                          214    {
                                                                                                                                                                                                                                                                                                          215        if (null === $this->mysqli) {
                                                                                                                                                                                                                                                                                                          216            return false;
                                                                                                                                                                                                                                                                                                          217        }
                                                                                                                                                                                                                                                                                                          218
                                                                                                                                                                                                                                                                                                          219        $ignoreUserAbort = $environment->ignore_user_abort();
                                                                                                                                                                                                                                                                                                          220        $selectTimeout = $options->getServerSideSelectTimeout();
                                                                                                                                                                                                                                                                                                          221
                                                                                                                                                                                                                                                                                                          222        /**
                                                                                                                                                                                                                                                                                                          223         * Prevent entry of invalid values such as those that are out of range, or NULL specified for NOT NULL columns
                                                                                                                                                                                                                                                                                                          224         * TRADITIONAL = strict mode
                                                                                                                                                                                                                                                                                                          225         *
                                                                                                                                                                                                                                                                                                          226         * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional
                                                                                                                                                                                                                                                                                                          227         */
                                                                                                                                                                                                                                                                                                          228        $mysqliInit = sprintf('SET SESSION sql_mode = %s', self::SQL_MODE);
                                                                                                                                                                                                                                                                                                          229        if ($ignoreUserAbort < 1) {
                                                                                                                                                                                                                                                                                                          230            $mysqliInit .= sprintf(', SESSION max_execution_time = %s', $selectTimeout * 10000);
                                                                                                                                                                                                                                                                                                          231        }
                                                                                                                                                                                                                                                                                                          232
                                                                                                                                                                                                                                                                                                          233        $connectTimeout = $options->getConnectTimeout();
                                                                                                                                                                                                                                                                                                          234        $readTimeout = $options->getReadTimeout();
                                                                                                                                                                                                                                                                                                          235        $netReadTimeout = (string) (max($selectTimeout, $readTimeout) + $connectTimeout);
                                                                                                                                                                                                                                                                                                          236
                                                                                                                                                                                                                                                                                                          237        return
                                                                                                                                                                                                                                                                                                          238            $environment->setMysqlndNetReadTimeout($netReadTimeout) &&
                                                                                                                                                                                                                                                                                                          239            $this->mysqli->options(self::MYSQLI_INIT_COMMAND, $mysqliInit) &&
                                                                                                                                                                                                                                                                                                          240            $this->mysqli->options(self::MYSQLI_OPT_CONNECT_TIMEOUT, $connectTimeout) &&
                                                                                                                                                                                                                                                                                                          241            $this->mysqli->options(self::MYSQLI_OPT_READ_TIMEOUT, $readTimeout) &&
                                                                                                                                                                                                                                                                                                          242            $this->mysqli->options(self::MYSQLI_OPT_NET_CMD_BUFFER_SIZE, $options->getNetworkBufferSize()) &&
                                                                                                                                                                                                                                                                                                          243            $this->mysqli->options(self::MYSQLI_OPT_NET_READ_BUFFER_SIZE, $options->getNetworkReadBuffer());
                                                                                                                                                                                                                                                                                                          244    }
                                                                                                                                                                                                                                                                                                          245
                                                                                                                                                                                                                                                                                                          246    public function setTransactionIsolationLevel(string $level): bool
                                                                                                                                                                                                                                                                                                          247    {
                                                                                                                                                                                                                                                                                                          248        /**
                                                                                                                                                                                                                                                                                                          249         * SESSION is explicitly required,
                                                                                                                                                                                                                                                                                                          250         * otherwise 'The statement applies only to the next single transaction performed within the session'
                                                                                                                                                                                                                                                                                                          251         *
                                                                                                                                                                                                                                                                                                          252         * @see https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html
                                                                                                                                                                                                                                                                                                          253         */
                                                                                                                                                                                                                                                                                                          254        return $this->realQuery(sprintf('SET SESSION TRANSACTION ISOLATION LEVEL %s', $level));
                                                                                                                                                                                                                                                                                                          255    }
                                                                                                                                                                                                                                                                                                          256
                                                                                                                                                                                                                                                                                                          257    public function isTransactionOpen(): bool
                                                                                                                                                                                                                                                                                                          258    {
                                                                                                                                                                                                                                                                                                          259        /**
                                                                                                                                                                                                                                                                                                          260         * Ignore autocommit setting here
                                                                                                                                                                                                                                                                                                          261         */
                                                                                                                                                                                                                                                                                                          262        return $this->isTransaction;
                                                                                                                                                                                                                                                                                                          263    }
                                                                                                                                                                                                                                                                                                          264
                                                                                                                                                                                                                                                                                                          265    public function isConnected(): bool
                                                                                                                                                                                                                                                                                                          266    {
                                                                                                                                                                                                                                                                                                          267        return $this->mysqli && $this->isConnected;
                                                                                                                                                                                                                                                                                                          268    }
                                                                                                                                                                                                                                                                                                          269
                                                                                                                                                                                                                                                                                                          270    public function getMysqli(): ?mysqli
                                                                                                                                                                                                                                                                                                          271    {
                                                                                                                                                                                                                                                                                                          272        return $this->mysqli;
                                                                                                                                                                                                                                                                                                          273    }
                                                                                                                                                                                                                                                                                                          274
                                                                                                                                                                                                                                                                                                          275    /**
                                                                                                                                                                                                                                                                                                          276     * @see https://www.php.net/manual/en/mysqli.real-query.php
                                                                                                                                                                                                                                                                                                          277     */
                                                                                                                                                                                                                                                                                                          278    public function realQuery(string $query): bool
                                                                                                                                                                                                                                                                                                          279    {
                                                                                                                                                                                                                                                                                                          280        if ($this->mysqli && $this->isConnected()) {
                                                                                                                                                                                                                                                                                                          281            return $this->mysqli->real_query($query);
                                                                                                                                                                                                                                                                                                          282        }
                                                                                                                                                                                                                                                                                                          283
                                                                                                                                                                                                                                                                                                          284        return false;
                                                                                                                                                                                                                                                                                                          285    }
                                                                                                                                                                                                                                                                                                          286
                                                                                                                                                                                                                                                                                                          287    /**
                                                                                                                                                                                                                                                                                                          288     * React to mysqli resource changes after query/command execution
                                                                                                                                                                                                                                                                                                          289     */
                                                                                                                                                                                                                                                                                                          290    public function readServerResponse(MydbEnvironmentInterface $environment): ?MydbMysqliResult
                                                                                                                                                                                                                                                                                                          291    {
                                                                                                                                                                                                                                                                                                          292        if ($this->mysqli && $this->isConnected()) {
                                                                                                                                                                                                                                                                                                          293            $events = [];
                                                                                                                                                                                                                                                                                                          294
                                                                                                                                                                                                                                                                                                          295            $warnings = [];
                                                                                                                                                                                                                                                                                                          296            
                                                                                                                                                                                                                                                                                                          297            $result = $this->extractServerResponse($environment, $events);
                                                                                                                                                                                                                                                                                                          298
                                                                                                                                                                                                                                                                                                          299            $fieldsCount = $this->getFieldCount();
                                                                                                                                                                                                                                                                                                          300
                                                                                                                                                                                                                                                                                                          301            if ($this->getWarningCount() > 0) {
                                                                                                                                                                                                                                                                                                          302                $warnings = array_merge($warnings, $this->getWarnings());
                                                                                                                                                                                                                                                                                                          303            }
                                                                                                                                                                                                                                                                                                          304            if ($events) {
                                                                                                                                                                                                                                                                                                          305                $warnings = array_merge($warnings, array_values($events));
                                                                                                                                                                                                                                                                                                          306            }
                                                                                                                                                                                                                                                                                                          307
                                                                                                                                                                                                                                                                                                          308            /** @var array<array-key, string> $warnings */
                                                                                                                                                                                                                                                                                                          309            $response = new MydbMysqliResult($result, $warnings, $fieldsCount ?? 0);
                                                                                                                                                                                                                                                                                                          310
                                                                                                                                                                                                                                                                                                          311            $error = $this->getError();
                                                                                                                                                                                                                                                                                                          312            if (null !== $error && '' !== $error) {
                                                                                                                                                                                                                                                                                                          313                $response->setErrorMessage($error);
                                                                                                                                                                                                                                                                                                          314            }
                                                                                                                                                                                                                                                                                                          315
                                                                                                                                                                                                                                                                                                          316            $errno = $this->getErrNo();
                                                                                                                                                                                                                                                                                                          317            if ($errno > 0) {
                                                                                                                                                                                                                                                                                                          318                $response->setErrorNumber($errno);
                                                                                                                                                                                                                                                                                                          319            }
                                                                                                                                                                                                                                                                                                          320
                                                                                                                                                                                                                                                                                                          321            return $response;
                                                                                                                                                                                                                                                                                                          322        }
                                                                                                                                                                                                                                                                                                          323
                                                                                                                                                                                                                                                                                                          324        return null;
                                                                                                                                                                                                                                                                                                          325    }
                                                                                                                                                                                                                                                                                                          326
                                                                                                                                                                                                                                                                                                          327    /**
                                                                                                                                                                                                                                                                                                          328     * @see https://www.php.net/manual/en/mysqli.real-escape-string.php
                                                                                                                                                                                                                                                                                                          329     */
                                                                                                                                                                                                                                                                                                          330    public function realEscapeString(string $string): ?string
                                                                                                                                                                                                                                                                                                          331    {
                                                                                                                                                                                                                                                                                                          332        if (!$this->mysqli || !$this->isConnected()) {
                                                                                                                                                                                                                                                                                                          333            return null;
                                                                                                                                                                                                                                                                                                          334        }
                                                                                                                                                                                                                                                                                                          335
                                                                                                                                                                                                                                                                                                          336        return $this->mysqli->real_escape_string($string);
                                                                                                                                                                                                                                                                                                          337    }
                                                                                                                                                                                                                                                                                                          338
                                                                                                                                                                                                                                                                                                          339    /**
                                                                                                                                                                                                                                                                                                          340     * @see https://www.php.net/manual/en/mysqli.begin-transaction.php
                                                                                                                                                                                                                                                                                                          341     */
                                                                                                                                                                                                                                                                                                          342    public function beginTransactionReadwrite(): bool
                                                                                                                                                                                                                                                                                                          343    {
                                                                                                                                                                                                                                                                                                          344        if ($this->mysqli &&
                                                                                                                                                                                                                                                                                                          345            $this->isConnected() &&
                                                                                                                                                                                                                                                                                                          346            $this->mysqli->begin_transaction(self::MYSQLI_TRANS_START_READ_WRITE)) {
                                                                                                                                                                                                                                                                                                          347            $this->isTransaction = true;
                                                                                                                                                                                                                                                                                                          348
                                                                                                                                                                                                                                                                                                          349            return true;
                                                                                                                                                                                                                                                                                                          350        }
                                                                                                                                                                                                                                                                                                          351
                                                                                                                                                                                                                                                                                                          352        return false;
                                                                                                                                                                                                                                                                                                          353    }
                                                                                                                                                                                                                                                                                                          354
                                                                                                                                                                                                                                                                                                          355    /**
                                                                                                                                                                                                                                                                                                          356     * @see https://www.php.net/manual/en/mysqli.begin-transaction.php
                                                                                                                                                                                                                                                                                                          357     */
                                                                                                                                                                                                                                                                                                          358    public function beginTransactionReadonly(): bool
                                                                                                                                                                                                                                                                                                          359    {
                                                                                                                                                                                                                                                                                                          360        if ($this->mysqli &&
                                                                                                                                                                                                                                                                                                          361            $this->isConnected() &&
                                                                                                                                                                                                                                                                                                          362            $this->mysqli->begin_transaction(self::MYSQLI_TRANS_START_READ_ONLY)) {
                                                                                                                                                                                                                                                                                                          363            $this->isTransaction = true;
                                                                                                                                                                                                                                                                                                          364
                                                                                                                                                                                                                                                                                                          365            return true;
                                                                                                                                                                                                                                                                                                          366        }
                                                                                                                                                                                                                                                                                                          367
                                                                                                                                                                                                                                                                                                          368        return false;
                                                                                                                                                                                                                                                                                                          369    }
                                                                                                                                                                                                                                                                                                          370
                                                                                                                                                                                                                                                                                                          371    /**
                                                                                                                                                                                                                                                                                                          372     * @see https://www.php.net/manual/en/mysqli.rollback.php
                                                                                                                                                                                                                                                                                                          373     */
                                                                                                                                                                                                                                                                                                          374    public function rollback(): bool
                                                                                                                                                                                                                                                                                                          375    {
                                                                                                                                                                                                                                                                                                          376        /**
                                                                                                                                                                                                                                                                                                          377         * ignore isTransaction state, do not rely on it, instead do what user requested
                                                                                                                                                                                                                                                                                                          378         */
                                                                                                                                                                                                                                                                                                          379        if ($this->mysqli && $this->isConnected() && $this->mysqli->rollback(self::MYSQLI_TRANS_COR_NO_RELEASE)) {
                                                                                                                                                                                                                                                                                                          380            $this->isTransaction = false;
                                                                                                                                                                                                                                                                                                          381
                                                                                                                                                                                                                                                                                                          382            return true;
                                                                                                                                                                                                                                                                                                          383        }
                                                                                                                                                                                                                                                                                                          384
                                                                                                                                                                                                                                                                                                          385        return false;
                                                                                                                                                                                                                                                                                                          386    }
                                                                                                                                                                                                                                                                                                          387
                                                                                                                                                                                                                                                                                                          388    /**
                                                                                                                                                                                                                                                                                                          389     * Commit transaction and release connection from server side
                                                                                                                                                                                                                                                                                                          390     */
                                                                                                                                                                                                                                                                                                          391    public function commitAndRelease(): bool
                                                                                                                                                                                                                                                                                                          392    {
                                                                                                                                                                                                                                                                                                          393        if ($this->mysqli && $this->isConnected() && $this->mysqli->commit(self::MYSQLI_TRANS_COR_RELEASE)) {
                                                                                                                                                                                                                                                                                                          394            $this->isTransaction = false;
                                                                                                                                                                                                                                                                                                          395
                                                                                                                                                                                                                                                                                                          396            return true;
                                                                                                                                                                                                                                                                                                          397        }
                                                                                                                                                                                                                                                                                                          398
                                                                                                                                                                                                                                                                                                          399        return false;
                                                                                                                                                                                                                                                                                                          400    }
                                                                                                                                                                                                                                                                                                          401
                                                                                                                                                                                                                                                                                                          402    public function commit(): bool
                                                                                                                                                                                                                                                                                                          403    {
                                                                                                                                                                                                                                                                                                          404        if ($this->mysqli && $this->isConnected() && $this->mysqli->commit(self::MYSQLI_TRANS_COR_NO_RELEASE)) {
                                                                                                                                                                                                                                                                                                          405            $this->isTransaction = false;
                                                                                                                                                                                                                                                                                                          406
                                                                                                                                                                                                                                                                                                          407            return true;
                                                                                                                                                                                                                                                                                                          408        }
                                                                                                                                                                                                                                                                                                          409
                                                                                                                                                                                                                                                                                                          410        return false;
                                                                                                                                                                                                                                                                                                          411    }
                                                                                                                                                                                                                                                                                                          412
                                                                                                                                                                                                                                                                                                          413    public function realConnect(
                                                                                                                                                                                                                                                                                                          414        string $host,
                                                                                                                                                                                                                                                                                                          415        string $username,
                                                                                                                                                                                                                                                                                                          416        string $password,
                                                                                                                                                                                                                                                                                                          417        string $dbname,
                                                                                                                                                                                                                                                                                                          418        ?int $port,
                                                                                                                                                                                                                                                                                                          419        ?string $socket,
                                                                                                                                                                                                                                                                                                          420        int $flags,
                                                                                                                                                                                                                                                                                                          421    ): bool {
                                                                                                                                                                                                                                                                                                          422        if ($this->mysqli && !$this->isConnected() && $this->mysqli->real_connect(
                                                                                                                                                                                                                                                                                                          423            $host,
                                                                                                                                                                                                                                                                                                          424            $username,
                                                                                                                                                                                                                                                                                                          425            $password,
                                                                                                                                                                                                                                                                                                          426            $dbname,
                                                                                                                                                                                                                                                                                                          427            (int) $port,
                                                                                                                                                                                                                                                                                                          428            (string) $socket,
                                                                                                                                                                                                                                                                                                          429            $flags
                                                                                                                                                                                                                                                                                                          430        )) {
                                                                                                                                                                                                                                                                                                          431            $this->isConnected = true;
                                                                                                                                                                                                                                                                                                          432
                                                                                                                                                                                                                                                                                                          433            return true;
                                                                                                                                                                                                                                                                                                          434        }
                                                                                                                                                                                                                                                                                                          435
                                                                                                                                                                                                                                                                                                          436        return false;
                                                                                                                                                                                                                                                                                                          437    }
                                                                                                                                                                                                                                                                                                          438
                                                                                                                                                                                                                                                                                                          439    public function mysqliReport(int $level): bool
                                                                                                                                                                                                                                                                                                          440    {
                                                                                                                                                                                                                                                                                                          441        return mysqli_report($level);
                                                                                                                                                                                                                                                                                                          442    }
                                                                                                                                                                                                                                                                                                          443
                                                                                                                                                                                                                                                                                                          444    public function close(): bool
                                                                                                                                                                                                                                                                                                          445    {
                                                                                                                                                                                                                                                                                                          446        if ($this->mysqli) {
                                                                                                                                                                                                                                                                                                          447            if ($this->isConnected()) {
                                                                                                                                                                                                                                                                                                          448                /**
                                                                                                                                                                                                                                                                                                          449                 * Ignore close() success/failure
                                                                                                                                                                                                                                                                                                          450                 */
                                                                                                                                                                                                                                                                                                          451                $this->mysqli->close();
                                                                                                                                                                                                                                                                                                          452                $this->isConnected = false;
                                                                                                                                                                                                                                                                                                          453            }
                                                                                                                                                                                                                                                                                                          454
                                                                                                                                                                                                                                                                                                          455            $this->mysqli = null;
                                                                                                                                                                                                                                                                                                          456
                                                                                                                                                                                                                                                                                                          457            return true;
                                                                                                                                                                                                                                                                                                          458        }
                                                                                                                                                                                                                                                                                                          459
                                                                                                                                                                                                                                                                                                          460        return false;
                                                                                                                                                                                                                                                                                                          461    }
                                                                                                                                                                                                                                                                                                          462
                                                                                                                                                                                                                                                                                                          463    public function getConnectErrno(): ?int
                                                                                                                                                                                                                                                                                                          464    {
                                                                                                                                                                                                                                                                                                          465        return $this->mysqli
                                                                                                                                                                                                                                                                                                          466            ? $this->mysqli->connect_errno
                                                                                                                                                                                                                                                                                                          467            : null;
                                                                                                                                                                                                                                                                                                          468    }
                                                                                                                                                                                                                                                                                                          469
                                                                                                                                                                                                                                                                                                          470    public function getConnectError(): ?string
                                                                                                                                                                                                                                                                                                          471    {
                                                                                                                                                                                                                                                                                                          472        return $this->mysqli
                                                                                                                                                                                                                                                                                                          473            ? $this->mysqli->connect_error
                                                                                                                                                                                                                                                                                                          474            : null;
                                                                                                                                                                                                                                                                                                          475    }
                                                                                                                                                                                                                                                                                                          476
                                                                                                                                                                                                                                                                                                          477    public function isServerGone(): bool
                                                                                                                                                                                                                                                                                                          478    {
                                                                                                                                                                                                                                                                                                          479        return in_array($this->getErrNo(), [2002, 2006], true);
                                                                                                                                                                                                                                                                                                          480    }
                                                                                                                                                                                                                                                                                                          481
                                                                                                                                                                                                                                                                                                          482    public function getError(): ?string
                                                                                                                                                                                                                                                                                                          483    {
                                                                                                                                                                                                                                                                                                          484        return $this->mysqli
                                                                                                                                                                                                                                                                                                          485            ? $this->mysqli->error
                                                                                                                                                                                                                                                                                                          486            : null;
                                                                                                                                                                                                                                                                                                          487    }
                                                                                                                                                                                                                                                                                                          488
                                                                                                                                                                                                                                                                                                          489    public function getErrNo(): ?int
                                                                                                                                                                                                                                                                                                          490    {
                                                                                                                                                                                                                                                                                                          491        return $this->mysqli
                                                                                                                                                                                                                                                                                                          492            ? $this->mysqli->errno
                                                                                                                                                                                                                                                                                                          493            : null;
                                                                                                                                                                                                                                                                                                          494    }
                                                                                                                                                                                                                                                                                                          495
                                                                                                                                                                                                                                                                                                          496    public function getAffectedRows(): ?int
                                                                                                                                                                                                                                                                                                          497    {
                                                                                                                                                                                                                                                                                                          498        $rows = $this->mysqli
                                                                                                                                                                                                                                                                                                          499            ? (int) $this->mysqli->affected_rows
                                                                                                                                                                                                                                                                                                          500            : null;
                                                                                                                                                                                                                                                                                                          501        if (0 === $rows || $rows > 0) {
                                                                                                                                                                                                                                                                                                          502            return $rows;
                                                                                                                                                                                                                                                                                                          503        }
                                                                                                                                                                                                                                                                                                          504
                                                                                                                                                                                                                                                                                                          505        /**
                                                                                                                                                                                                                                                                                                          506         * mysqli_affected_rows
                                                                                                                                                                                                                                                                                                          507         * An integer greater than zero indicates the number of rows affected or retrieved.
                                                                                                                                                                                                                                                                                                          508         * Zero indicates that no records where updated for an UPDATE statement,
                                                                                                                                                                                                                                                                                                          509         * no rows matched the WHERE clause in the query or that no query has yet been executed.
                                                                                                                                                                                                                                                                                                          510         * -1 indicates that the query returned an error.
                                                                                                                                                                                                                                                                                                          511         */
                                                                                                                                                                                                                                                                                                          512        return null;
                                                                                                                                                                                                                                                                                                          513    }
                                                                                                                                                                                                                                                                                                          514
                                                                                                                                                                                                                                                                                                          515    /**
                                                                                                                                                                                                                                                                                                          516     * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint
                                                                                                                                                                                                                                                                                                          517     */
                                                                                                                                                                                                                                                                                                          518    public function getInsertId(): int|string|null
                                                                                                                                                                                                                                                                                                          519    {
                                                                                                                                                                                                                                                                                                          520        return $this->mysqli
                                                                                                                                                                                                                                                                                                          521            ? $this->mysqli->insert_id
                                                                                                                                                                                                                                                                                                          522            : null;
                                                                                                                                                                                                                                                                                                          523    }
                                                                                                                                                                                                                                                                                                          524
                                                                                                                                                                                                                                                                                                          525    public function autocommit(bool $enable): bool
                                                                                                                                                                                                                                                                                                          526    {
                                                                                                                                                                                                                                                                                                          527        if ($this->mysqli && $this->mysqli->autocommit($enable)) {
                                                                                                                                                                                                                                                                                                          528            if ($enable) {
                                                                                                                                                                                                                                                                                                          529                /**
                                                                                                                                                                                                                                                                                                          530                 * Some statement implicitly commit transaction
                                                                                                                                                                                                                                                                                                          531                 * @see https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html
                                                                                                                                                                                                                                                                                                          532                 */
                                                                                                                                                                                                                                                                                                          533                $this->isTransaction = false;
                                                                                                                                                                                                                                                                                                          534            }
                                                                                                                                                                                                                                                                                                          535
                                                                                                                                                                                                                                                                                                          536            return true;
                                                                                                                                                                                                                                                                                                          537        }
                                                                                                                                                                                                                                                                                                          538
                                                                                                                                                                                                                                                                                                          539        return false;
                                                                                                                                                                                                                                                                                                          540    }
                                                                                                                                                                                                                                                                                                          541
                                                                                                                                                                                                                                                                                                          542    /**
                                                                                                                                                                                                                                                                                                          543     * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference
                                                                                                                                                                                                                                                                                                          544     * @param array<int, string> $events
                                                                                                                                                                                                                                                                                                          545     */
                                                                                                                                                                                                                                                                                                          546    public function extractServerResponse(MydbEnvironmentInterface $environment, array &$events): ?mysqli_result
                                                                                                                                                                                                                                                                                                          547    {
                                                                                                                                                                                                                                                                                                          548        if (null === $this->mysqli) {
                                                                                                                                                                                                                                                                                                          549            return null;
                                                                                                                                                                                                                                                                                                          550        }
                                                                                                                                                                                                                                                                                                          551
                                                                                                                                                                                                                                                                                                          552        /**
                                                                                                                                                                                                                                                                                                          553         * @psalm-suppress UnusedClosureParam
                                                                                                                                                                                                                                                                                                          554         */
                                                                                                                                                                                                                                                                                                          555        $environment->set_error_handler(static function (int $errno, string $error) use (&$events) {
                                                                                                                                                                                                                                                                                                          556            $events[$errno] = $error;
                                                                                                                                                                                                                                                                                                          557
                                                                                                                                                                                                                                                                                                          558            return true;
                                                                                                                                                                                                                                                                                                          559        });
                                                                                                                                                                                                                                                                                                          560
                                                                                                                                                                                                                                                                                                          561        $result = $this->mysqli->store_result(self::MYSQLI_STORE_RESULT_COPY_DATA);
                                                                                                                                                                                                                                                                                                          562        $environment->restore_error_handler();
                                                                                                                                                                                                                                                                                                          563
                                                                                                                                                                                                                                                                                                          564        if (false === $result) {
                                                                                                                                                                                                                                                                                                          565            return null;
                                                                                                                                                                                                                                                                                                          566        }
                                                                                                                                                                                                                                                                                                          567
                                                                                                                                                                                                                                                                                                          568        return $result;
                                                                                                                                                                                                                                                                                                          569    }
                                                                                                                                                                                                                                                                                                          570
                                                                                                                                                                                                                                                                                                          571    public function getWarnings(): array
                                                                                                                                                                                                                                                                                                          572    {
                                                                                                                                                                                                                                                                                                          573        if ($this->mysqli) {
                                                                                                                                                                                                                                                                                                          574            $warnings = $this->mysqli->get_warnings();
                                                                                                                                                                                                                                                                                                          575            $array = [];
                                                                                                                                                                                                                                                                                                          576            do {
                                                                                                                                                                                                                                                                                                          577                $array[] = $warnings->message;
                                                                                                                                                                                                                                                                                                          578            } while ($warnings->next());
                                                                                                                                                                                                                                                                                                          579
                                                                                                                                                                                                                                                                                                          580            return $array;
                                                                                                                                                                                                                                                                                                          581        }
                                                                                                                                                                                                                                                                                                          582
                                                                                                                                                                                                                                                                                                          583        return [];
                                                                                                                                                                                                                                                                                                          584    }
                                                                                                                                                                                                                                                                                                          585
                                                                                                                                                                                                                                                                                                          586    /**
                                                                                                                                                                                                                                                                                                          587     * Returns fields count caused by query execution
                                                                                                                                                                                                                                                                                                          588     * Requires store_result to be called first
                                                                                                                                                                                                                                                                                                          589     * @see mysqli::store_result()
                                                                                                                                                                                                                                                                                                          590     */
                                                                                                                                                                                                                                                                                                          591    protected function getFieldCount(): ?int
                                                                                                                                                                                                                                                                                                          592    {
                                                                                                                                                                                                                                                                                                          593        return $this->mysqli ? $this->mysqli->field_count : null;
                                                                                                                                                                                                                                                                                                          594    }
                                                                                                                                                                                                                                                                                                          595
                                                                                                                                                                                                                                                                                                          596    /**
                                                                                                                                                                                                                                                                                                          597     * Returns warnings caused by query execution
                                                                                                                                                                                                                                                                                                          598     * Requires store_result to be called first
                                                                                                                                                                                                                                                                                                          599     * @see mysqli::store_result()
                                                                                                                                                                                                                                                                                                          600     */
                                                                                                                                                                                                                                                                                                          601    protected function getWarningCount(): ?int
                                                                                                                                                                                                                                                                                                          602    {
                                                                                                                                                                                                                                                                                                          603        return $this->mysqli
                                                                                                                                                                                                                                                                                                          604            ? $this->mysqli->warning_count
                                                                                                                                                                                                                                                                                                          605            : null;
                                                                                                                                                                                                                                                                                                          606    }
                                                                                                                                                                                                                                                                                                          607}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli/MydbMysqliEscapeStringInterface.php.html b/php/phpunit/html/MydbMysqli/MydbMysqliEscapeStringInterface.php.html new file mode 100644 index 00000000000..d041ce2c130 --- /dev/null +++ b/php/phpunit/html/MydbMysqli/MydbMysqliEscapeStringInterface.php.html @@ -0,0 +1,113 @@ + + + + + Code Coverage for /app/src/sql/MydbMysqli/MydbMysqliEscapeStringInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbMysqli;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23interface MydbMysqliEscapeStringInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25    public function realEscapeString(string $string): ?string;
                                                                                                                                                                                                                                                                                                          26}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli/MydbMysqliResult.php.html b/php/phpunit/html/MydbMysqli/MydbMysqliResult.php.html new file mode 100644 index 00000000000..8ec2b005133 --- /dev/null +++ b/php/phpunit/html/MydbMysqli/MydbMysqliResult.php.html @@ -0,0 +1,387 @@ + + + + + Code Coverage for /app/src/sql/MydbMysqli/MydbMysqliResult.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbMysqliResult
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           getFieldCount
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getWarnings
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setErrorMessage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setErrorNumber
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getError
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          6 / 6
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          6
                                                                                                                                                                                                                                                                                                           getResult
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbMysqli;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use mysqli_result;
                                                                                                                                                                                                                                                                                                          19use const MYSQLI_ASSOC;
                                                                                                                                                                                                                                                                                                          20
                                                                                                                                                                                                                                                                                                          21/**
                                                                                                                                                                                                                                                                                                          22 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          23 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          24 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          25 * @access protected
                                                                                                                                                                                                                                                                                                          26 */
                                                                                                                                                                                                                                                                                                          27class MydbMysqliResult implements MydbMysqliResultInterface
                                                                                                                                                                                                                                                                                                          28{
                                                                                                                                                                                                                                                                                                          29    protected const MYSQLI_ASSOC = MYSQLI_ASSOC;
                                                                                                                                                                                                                                                                                                          30
                                                                                                                                                                                                                                                                                                          31    protected ?array $result = null;
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    /**
                                                                                                                                                                                                                                                                                                          34     * @psalm-var array<array-key, string>
                                                                                                                                                                                                                                                                                                          35     * @phpcs:disable SlevomatCodingStandard.Classes.RequireConstructorPropertyPromotion.RequiredConstructorPropertyPromotion
                                                                                                                                                                                                                                                                                                          36     */
                                                                                                                                                                                                                                                                                                          37    protected array $warnings;
                                                                                                                                                                                                                                                                                                          38
                                                                                                                                                                                                                                                                                                          39    protected ?string $errorMessage = null;
                                                                                                                                                                                                                                                                                                          40
                                                                                                                                                                                                                                                                                                          41    protected int $errorNumber = 0;
                                                                                                                                                                                                                                                                                                          42
                                                                                                                                                                                                                                                                                                          43    /**
                                                                                                                                                                                                                                                                                                          44     * @psalm-param array<array-key, string> $warnings
                                                                                                                                                                                                                                                                                                          45     */
                                                                                                                                                                                                                                                                                                          46    public function __construct(?mysqli_result $result, array $warnings, protected int $fieldsCount)
                                                                                                                                                                                                                                                                                                          47    {
                                                                                                                                                                                                                                                                                                          48        if (null !== $result) {
                                                                                                                                                                                                                                                                                                          49            $this->result = $result->fetch_all(self::MYSQLI_ASSOC);
                                                                                                                                                                                                                                                                                                          50            $result->free();
                                                                                                                                                                                                                                                                                                          51        }
                                                                                                                                                                                                                                                                                                          52
                                                                                                                                                                                                                                                                                                          53        $this->warnings = $warnings;
                                                                                                                                                                                                                                                                                                          54    }
                                                                                                                                                                                                                                                                                                          55
                                                                                                                                                                                                                                                                                                          56    public function getFieldCount(): int
                                                                                                                                                                                                                                                                                                          57    {
                                                                                                                                                                                                                                                                                                          58        return $this->fieldsCount;
                                                                                                                                                                                                                                                                                                          59    }
                                                                                                                                                                                                                                                                                                          60
                                                                                                                                                                                                                                                                                                          61    /**
                                                                                                                                                                                                                                                                                                          62     * @psalm-return array<array-key, string>
                                                                                                                                                                                                                                                                                                          63     */
                                                                                                                                                                                                                                                                                                          64    public function getWarnings(): array
                                                                                                                                                                                                                                                                                                          65    {
                                                                                                                                                                                                                                                                                                          66        return $this->warnings;
                                                                                                                                                                                                                                                                                                          67    }
                                                                                                                                                                                                                                                                                                          68
                                                                                                                                                                                                                                                                                                          69    public function setErrorMessage(string $errorMessage): void
                                                                                                                                                                                                                                                                                                          70    {
                                                                                                                                                                                                                                                                                                          71        $this->errorMessage = $errorMessage;
                                                                                                                                                                                                                                                                                                          72    }
                                                                                                                                                                                                                                                                                                          73
                                                                                                                                                                                                                                                                                                          74    public function setErrorNumber(int $errorNumber): void
                                                                                                                                                                                                                                                                                                          75    {
                                                                                                                                                                                                                                                                                                          76        $this->errorNumber = $errorNumber;
                                                                                                                                                                                                                                                                                                          77    }
                                                                                                                                                                                                                                                                                                          78
                                                                                                                                                                                                                                                                                                          79    public function getError(): ?string
                                                                                                                                                                                                                                                                                                          80    {
                                                                                                                                                                                                                                                                                                          81        if ($this->result) {
                                                                                                                                                                                                                                                                                                          82            return null;
                                                                                                                                                                                                                                                                                                          83        }
                                                                                                                                                                                                                                                                                                          84
                                                                                                                                                                                                                                                                                                          85        if ($this->errorNumber > 0 || null !== $this->errorMessage) {
                                                                                                                                                                                                                                                                                                          86            if (null !== $this->errorMessage && '' !== $this->errorMessage) {
                                                                                                                                                                                                                                                                                                          87                return ((string) $this->errorNumber) . ' ' . $this->errorMessage;
                                                                                                                                                                                                                                                                                                          88            }
                                                                                                                                                                                                                                                                                                          89
                                                                                                                                                                                                                                                                                                          90            // @codeCoverageIgnoreStart
                                                                                                                                                                                                                                                                                                          91            return (string) $this->errorNumber;
                                                                                                                                                                                                                                                                                                          92            // @codeCoverageIgnoreEnd
                                                                                                                                                                                                                                                                                                          93        }
                                                                                                                                                                                                                                                                                                          94
                                                                                                                                                                                                                                                                                                          95        return null;
                                                                                                                                                                                                                                                                                                          96    }
                                                                                                                                                                                                                                                                                                          97
                                                                                                                                                                                                                                                                                                          98    public function getResult(): ?array
                                                                                                                                                                                                                                                                                                          99    {
                                                                                                                                                                                                                                                                                                          100        return $this->result;
                                                                                                                                                                                                                                                                                                          101    }
                                                                                                                                                                                                                                                                                                          102}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli/MydbMysqliResultInterface.php.html b/php/phpunit/html/MydbMysqli/MydbMysqliResultInterface.php.html new file mode 100644 index 00000000000..45e067dbf0a --- /dev/null +++ b/php/phpunit/html/MydbMysqli/MydbMysqliResultInterface.php.html @@ -0,0 +1,134 @@ + + + + + Code Coverage for /app/src/sql/MydbMysqli/MydbMysqliResultInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql\MydbMysqli;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use mysqli_result;
                                                                                                                                                                                                                                                                                                          19
                                                                                                                                                                                                                                                                                                          20/**
                                                                                                                                                                                                                                                                                                          21 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          22 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          23 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          24 * @access protected
                                                                                                                                                                                                                                                                                                          25 */
                                                                                                                                                                                                                                                                                                          26interface MydbMysqliResultInterface
                                                                                                                                                                                                                                                                                                          27{
                                                                                                                                                                                                                                                                                                          28    /**
                                                                                                                                                                                                                                                                                                          29     * @psalm-param array<array-key, string> $warnings
                                                                                                                                                                                                                                                                                                          30     */
                                                                                                                                                                                                                                                                                                          31    public function __construct(?mysqli_result $result, array $warnings, int $fieldsCount);
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    public function getFieldCount(): int;
                                                                                                                                                                                                                                                                                                          34
                                                                                                                                                                                                                                                                                                          35    /**
                                                                                                                                                                                                                                                                                                          36     * @psalm-return array<array-key, string>
                                                                                                                                                                                                                                                                                                          37     */
                                                                                                                                                                                                                                                                                                          38    public function getWarnings(): array;
                                                                                                                                                                                                                                                                                                          39
                                                                                                                                                                                                                                                                                                          40    public function setErrorMessage(string $errorMessage): void;
                                                                                                                                                                                                                                                                                                          41
                                                                                                                                                                                                                                                                                                          42    public function setErrorNumber(int $errorNumber): void;
                                                                                                                                                                                                                                                                                                          43
                                                                                                                                                                                                                                                                                                          44    public function getError(): ?string;
                                                                                                                                                                                                                                                                                                          45
                                                                                                                                                                                                                                                                                                          46    public function getResult(): ?array;
                                                                                                                                                                                                                                                                                                          47}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli/dashboard.html b/php/phpunit/html/MydbMysqli/dashboard.html new file mode 100644 index 00000000000..a9b6c5129b5 --- /dev/null +++ b/php/phpunit/html/MydbMysqli/dashboard.html @@ -0,0 +1,284 @@ + + + + + Dashboard for /app/src/sql/MydbMysqli + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbMysqli/index.html b/php/phpunit/html/MydbMysqli/index.html new file mode 100644 index 00000000000..1526b66dc40 --- /dev/null +++ b/php/phpunit/html/MydbMysqli/index.html @@ -0,0 +1,78 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/MydbMysqli

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliEscapeStringInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbMysqliEscapeStringInterface.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliResult.php.html

                                                                                                                                                                                                                                                                                                          MydbMysqliResult.php.html +
                                                                                                                                                                                                                                                                                                          92 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliResultInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbMysqliResultInterface.php.html +
                                                                                                                                                                                                                                                                                                          15 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/MydbMysqliInterface.php.html b/php/phpunit/html/MydbMysqliInterface.php.html new file mode 100644 index 00000000000..ff590bcf3bd --- /dev/null +++ b/php/phpunit/html/MydbMysqliInterface.php.html @@ -0,0 +1,183 @@ + + + + + Code Coverage for /app/src/sql/MydbMysqliInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use mysqli;
                                                                                                                                                                                                                                                                                                          19use mysqli_result;
                                                                                                                                                                                                                                                                                                          20use sql\MydbMysqli\MydbMysqliEscapeStringInterface;
                                                                                                                                                                                                                                                                                                          21use sql\MydbMysqli\MydbMysqliResultInterface;
                                                                                                                                                                                                                                                                                                          22
                                                                                                                                                                                                                                                                                                          23/**
                                                                                                                                                                                                                                                                                                          24 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          25 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          26 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          27 */
                                                                                                                                                                                                                                                                                                          28interface MydbMysqliInterface extends MydbMysqliEscapeStringInterface
                                                                                                                                                                                                                                                                                                          29{
                                                                                                                                                                                                                                                                                                          30
                                                                                                                                                                                                                                                                                                          31    public function init(): bool;
                                                                                                                                                                                                                                                                                                          32
                                                                                                                                                                                                                                                                                                          33    public function setTransportOptions(MydbOptionsInterface $options, MydbEnvironmentInterface $environment): bool;
                                                                                                                                                                                                                                                                                                          34
                                                                                                                                                                                                                                                                                                          35    public function isTransactionOpen(): bool;
                                                                                                                                                                                                                                                                                                          36
                                                                                                                                                                                                                                                                                                          37    public function setTransactionIsolationLevel(string $level): bool;
                                                                                                                                                                                                                                                                                                          38
                                                                                                                                                                                                                                                                                                          39    public function isConnected(): bool;
                                                                                                                                                                                                                                                                                                          40
                                                                                                                                                                                                                                                                                                          41    public function getMysqli(): ?mysqli;
                                                                                                                                                                                                                                                                                                          42
                                                                                                                                                                                                                                                                                                          43    public function realQuery(string $query): bool;
                                                                                                                                                                                                                                                                                                          44
                                                                                                                                                                                                                                                                                                          45    public function readServerResponse(MydbEnvironmentInterface $environment): ?MydbMysqliResultInterface;
                                                                                                                                                                                                                                                                                                          46
                                                                                                                                                                                                                                                                                                          47    public function beginTransactionReadwrite(): bool;
                                                                                                                                                                                                                                                                                                          48
                                                                                                                                                                                                                                                                                                          49    public function beginTransactionReadonly(): bool;
                                                                                                                                                                                                                                                                                                          50
                                                                                                                                                                                                                                                                                                          51    public function rollback(): bool;
                                                                                                                                                                                                                                                                                                          52
                                                                                                                                                                                                                                                                                                          53    public function commitAndRelease(): bool;
                                                                                                                                                                                                                                                                                                          54
                                                                                                                                                                                                                                                                                                          55    public function commit(): bool;
                                                                                                                                                                                                                                                                                                          56
                                                                                                                                                                                                                                                                                                          57    public function realConnect(
                                                                                                                                                                                                                                                                                                          58        string $host,
                                                                                                                                                                                                                                                                                                          59        string $username,
                                                                                                                                                                                                                                                                                                          60        string $password,
                                                                                                                                                                                                                                                                                                          61        string $dbname,
                                                                                                                                                                                                                                                                                                          62        ?int $port,
                                                                                                                                                                                                                                                                                                          63        ?string $socket,
                                                                                                                                                                                                                                                                                                          64        int $flags,
                                                                                                                                                                                                                                                                                                          65    ): bool;
                                                                                                                                                                                                                                                                                                          66
                                                                                                                                                                                                                                                                                                          67    public function mysqliReport(int $level): bool;
                                                                                                                                                                                                                                                                                                          68
                                                                                                                                                                                                                                                                                                          69    public function close(): bool;
                                                                                                                                                                                                                                                                                                          70
                                                                                                                                                                                                                                                                                                          71    public function getConnectErrno(): ?int;
                                                                                                                                                                                                                                                                                                          72
                                                                                                                                                                                                                                                                                                          73    public function getConnectError(): ?string;
                                                                                                                                                                                                                                                                                                          74
                                                                                                                                                                                                                                                                                                          75    public function isServerGone(): bool;
                                                                                                                                                                                                                                                                                                          76
                                                                                                                                                                                                                                                                                                          77    public function getError(): ?string;
                                                                                                                                                                                                                                                                                                          78
                                                                                                                                                                                                                                                                                                          79    public function getErrNo(): ?int;
                                                                                                                                                                                                                                                                                                          80
                                                                                                                                                                                                                                                                                                          81    public function getAffectedRows(): ?int;
                                                                                                                                                                                                                                                                                                          82
                                                                                                                                                                                                                                                                                                          83    /**
                                                                                                                                                                                                                                                                                                          84     * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint
                                                                                                                                                                                                                                                                                                          85     */
                                                                                                                                                                                                                                                                                                          86    public function getInsertId(): int|string|null;
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          88    public function autocommit(bool $enable): bool;
                                                                                                                                                                                                                                                                                                          89
                                                                                                                                                                                                                                                                                                          90    /**
                                                                                                                                                                                                                                                                                                          91     * @param array<int, string> $events
                                                                                                                                                                                                                                                                                                          92     * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference
                                                                                                                                                                                                                                                                                                          93     */
                                                                                                                                                                                                                                                                                                          94    public function extractServerResponse(MydbEnvironmentInterface $environment, array &$events): ?mysqli_result;
                                                                                                                                                                                                                                                                                                          95
                                                                                                                                                                                                                                                                                                          96    public function getWarnings(): array;
                                                                                                                                                                                                                                                                                                          97}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbOptions.php.html b/php/phpunit/html/MydbOptions.php.html new file mode 100644 index 00000000000..2983f8164d9 --- /dev/null +++ b/php/phpunit/html/MydbOptions.php.html @@ -0,0 +1,1101 @@ + + + + + Code Coverage for /app/src/sql/MydbOptions.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          37 / 37
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbOptions
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          37 / 37
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          36
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           getNonInteractiveTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setNonInteractiveTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getServerSideSelectTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setServerSideSelectTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getConnectTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setConnectTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getErrorReporting
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setErrorReporting
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getReadTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setReadTimeout
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getNetworkBufferSize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setNetworkBufferSize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getNetworkReadBuffer
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setNetworkReadBuffer
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getClientErrorLevel
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setClientErrorLevel
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           getTimeZone
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setTimeZone
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           isAutocommit
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setAutocommit
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getCharset
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setCharset
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           isPersistent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setPersistent
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           isReadonly
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           setReadonly
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getTransactionIsolationLevel
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           setTransactionIsolationLevel
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException\OptionException;
                                                                                                                                                                                                                                                                                                          19use const E_ALL;
                                                                                                                                                                                                                                                                                                          20use const E_NOTICE;
                                                                                                                                                                                                                                                                                                          21use const E_WARNING;
                                                                                                                                                                                                                                                                                                          22
                                                                                                                                                                                                                                                                                                          23/**
                                                                                                                                                                                                                                                                                                          24 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          25 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          26 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          27 */
                                                                                                                                                                                                                                                                                                          28class MydbOptions implements MydbOptionsInterface
                                                                                                                                                                                                                                                                                                          29{
                                                                                                                                                                                                                                                                                                          30    protected const NET_CMD_BUFFER_SIZE_MIN = 4096;
                                                                                                                                                                                                                                                                                                          31
                                                                                                                                                                                                                                                                                                          32    protected const NET_CMD_BUFFER_SIZE_MAX = 16384;
                                                                                                                                                                                                                                                                                                          33
                                                                                                                                                                                                                                                                                                          34    protected const NET_READ_BUFFER_MIN = 8192;
                                                                                                                                                                                                                                                                                                          35
                                                                                                                                                                                                                                                                                                          36    protected const NET_READ_BUFFER_MAX = 131072;
                                                                                                                                                                                                                                                                                                          37
                                                                                                                                                                                                                                                                                                          38    /**
                                                                                                                                                                                                                                                                                                          39     * The execution timeout ONLY APPLIES TO "SELECT" statements, seconds
                                                                                                                                                                                                                                                                                                          40     * X > 0, enabled
                                                                                                                                                                                                                                                                                                          41     * X = 0, not enabled.
                                                                                                                                                                                                                                                                                                          42     *
                                                                                                                                                                                                                                                                                                          43     * @see https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time
                                                                                                                                                                                                                                                                                                          44     */
                                                                                                                                                                                                                                                                                                          45    protected int $serverSideSelectTimeout = 89;
                                                                                                                                                                                                                                                                                                          46
                                                                                                                                                                                                                                                                                                          47    /**
                                                                                                                                                                                                                                                                                                          48     * MySql client connection timeout, seconds
                                                                                                                                                                                                                                                                                                          49     */
                                                                                                                                                                                                                                                                                                          50    protected int $connectTimeout = 5;
                                                                                                                                                                                                                                                                                                          51
                                                                                                                                                                                                                                                                                                          52    protected int $errorReporting = E_ALL & ~E_WARNING & ~E_NOTICE;
                                                                                                                                                                                                                                                                                                          53
                                                                                                                                                                                                                                                                                                          54    /**
                                                                                                                                                                                                                                                                                                          55     * The timeout in seconds for each attempt to read from the server.
                                                                                                                                                                                                                                                                                                          56     * @see https://dev.mysql.com/doc/c-api/8.0/en/mysql-options.html
                                                                                                                                                                                                                                                                                                          57     * @see https://github.com/php/php-src/blob/12ab4cbd00e0dae52a5db98dda6da885acb408f6/
                                                                                                                                                                                                                                                                                                          58     *      ext/mysqli/mysqli.c#L654
                                                                                                                                                                                                                                                                                                          59     * @see https://github.com/php/php-src/blob/a03c1ed7aa2325d91595dcf9371297ab45543517/
                                                                                                                                                                                                                                                                                                          60     *      ext/mysqli/tests/mysqli_constants.phpt#L24
                                                                                                                                                                                                                                                                                                          61     */
                                                                                                                                                                                                                                                                                                          62    protected int $readTimeout = 90;
                                                                                                                                                                                                                                                                                                          63
                                                                                                                                                                                                                                                                                                          64    /**
                                                                                                                                                                                                                                                                                                          65     * Internal network buffer of mysqlnd.net_cmd_buffer_size bytes for every connection
                                                                                                                                                                                                                                                                                                          66     *
                                                                                                                                                                                                                                                                                                          67     * Scope: connection.
                                                                                                                                                                                                                                                                                                          68     *
                                                                                                                                                                                                                                                                                                          69     * Number of network command buffer extensions while sending commands from PHP to MySQL.
                                                                                                                                                                                                                                                                                                          70     *
                                                                                                                                                                                                                                                                                                          71     * mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes
                                                                                                                                                                                                                                                                                                          72     * for every connection.
                                                                                                                                                                                                                                                                                                          73     * If a MySQL Client Server protocol command, for example, COM_QUERY ("normal&quot query),
                                                                                                                                                                                                                                                                                                          74     * does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command.
                                                                                                                                                                                                                                                                                                          75     * Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one.
                                                                                                                                                                                                                                                                                                          76     *
                                                                                                                                                                                                                                                                                                          77     * If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes
                                                                                                                                                                                                                                                                                                          78     * for almost every connection, you should consider to increase the default size to avoid re-allocations.
                                                                                                                                                                                                                                                                                                          79     *
                                                                                                                                                                                                                                                                                                          80     * The default can set either through the php.ini setting mysqlnd.net_cmd_buffer_size
                                                                                                                                                                                                                                                                                                          81     * or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).
                                                                                                                                                                                                                                                                                                          82     *
                                                                                                                                                                                                                                                                                                          83     * It is recommended to set the buffer size to no less than 4096 bytes because mysqlnd also uses
                                                                                                                                                                                                                                                                                                          84     * it when reading certain communication packet from MySQL.
                                                                                                                                                                                                                                                                                                          85     *
                                                                                                                                                                                                                                                                                                          86     * As of PHP 5.3.2 mysqlnd does not allow setting buffers smaller than 4096 bytes.
                                                                                                                                                                                                                                                                                                          87     *
                                                                                                                                                                                                                                                                                                          88     * Default 4096
                                                                                                                                                                                                                                                                                                          89     *
                                                                                                                                                                                                                                                                                                          90     * More memory usage, in exchange for better performance
                                                                                                                                                                                                                                                                                                          91     * @see mysqlnd.net_cmd_buffer_size
                                                                                                                                                                                                                                                                                                          92     * @see http://php.net/manual/en/mysqlnd.config.php
                                                                                                                                                                                                                                                                                                          93     */
                                                                                                                                                                                                                                                                                                          94    protected int $networkBufferSize = 6144;
                                                                                                                                                                                                                                                                                                          95
                                                                                                                                                                                                                                                                                                          96    /**
                                                                                                                                                                                                                                                                                                          97     * More memory for better performance
                                                                                                                                                                                                                                                                                                          98     *
                                                                                                                                                                                                                                                                                                          99     * Maximum read chunk size in bytes when reading the body of a MySQL command packet
                                                                                                                                                                                                                                                                                                          100     * The MySQL client server protocol encapsulates all its commands in packets.
                                                                                                                                                                                                                                                                                                          101     * The packets consist of a small header and a body with the actual payload
                                                                                                                                                                                                                                                                                                          102     *
                                                                                                                                                                                                                                                                                                          103     * If a packet body is larger than mysqlnd.net_read_buffer_size bytes,
                                                                                                                                                                                                                                                                                                          104     * mysqlnd has to call read() multiple times
                                                                                                                                                                                                                                                                                                          105     *
                                                                                                                                                                                                                                                                                                          106     * This buffer controls how many bytes mysqlnd fetches from the PHP streams with one call.
                                                                                                                                                                                                                                                                                                          107     * If a result set has less than 32kB in size, mysqlnd will call the PHP streams network
                                                                                                                                                                                                                                                                                                          108     * functions only once, if it is larger more calls are needed
                                                                                                                                                                                                                                                                                                          109     *
                                                                                                                                                                                                                                                                                                          110     * Default 32768
                                                                                                                                                                                                                                                                                                          111     *
                                                                                                                                                                                                                                                                                                          112     * @see mysqlnd.net_read_buffer_size
                                                                                                                                                                                                                                                                                                          113     * @see http://php.net/manual/en/mysqlnd.config.php
                                                                                                                                                                                                                                                                                                          114     * @see http://blog.ulf-wendel.de/2007/php-mysqlnd-saves-40-memory-finally-new-tuning-options/
                                                                                                                                                                                                                                                                                                          115     */
                                                                                                                                                                                                                                                                                                          116    protected int $networkReadBuffer = 49152;
                                                                                                                                                                                                                                                                                                          117
                                                                                                                                                                                                                                                                                                          118    /**
                                                                                                                                                                                                                                                                                                          119     * Sets mysqli error reporting mode
                                                                                                                                                                                                                                                                                                          120     *
                                                                                                                                                                                                                                                                                                          121     * >=8.1.0 The default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT.
                                                                                                                                                                                                                                                                                                          122     * < 8.1.0 MYSQLI_REPORT_OFF.
                                                                                                                                                                                                                                                                                                          123     *
                                                                                                                                                                                                                                                                                                          124     * MYSQLI_REPORT_OFF Turns reporting off
                                                                                                                                                                                                                                                                                                          125     * MYSQLI_REPORT_ERROR Report errors from mysqli function calls
                                                                                                                                                                                                                                                                                                          126     * MYSQLI_REPORT_STRICT Throw mysqli_sql_exception for errors instead of warnings
                                                                                                                                                                                                                                                                                                          127     * MYSQLI_REPORT_INDEX Report if no index or bad index was used in a query
                                                                                                                                                                                                                                                                                                          128     * MYSQLI_REPORT_ALL Set all options (report all)
                                                                                                                                                                                                                                                                                                          129     *
                                                                                                                                                                                                                                                                                                          130     * @see https://www.php.net/manual/en/function.mysqli-report.php
                                                                                                                                                                                                                                                                                                          131     */
                                                                                                                                                                                                                                                                                                          132    protected int $clientErrorLevel = MydbMysqli::MYSQLI_REPORT_ALL ^
                                                                                                                                                                                                                                                                                                          133                                      MydbMysqli::MYSQLI_REPORT_STRICT ^
                                                                                                                                                                                                                                                                                                          134                                      MydbMysqli::MYSQLI_REPORT_INDEX;
                                                                                                                                                                                                                                                                                                          135
                                                                                                                                                                                                                                                                                                          136    /**
                                                                                                                                                                                                                                                                                                          137     * Transaction isolation is one of the foundations of database processing.
                                                                                                                                                                                                                                                                                                          138     * Isolation is the I in the acronym ACID; the isolation level is the setting that fine-tunes
                                                                                                                                                                                                                                                                                                          139     * the balance between performance and reliability, consistency, and reproducibility of results
                                                                                                                                                                                                                                                                                                          140     * when multiple transactions are making changes and performing queries at the same time.
                                                                                                                                                                                                                                                                                                          141     *
                                                                                                                                                                                                                                                                                                          142     * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html
                                                                                                                                                                                                                                                                                                          143     */
                                                                                                                                                                                                                                                                                                          144    protected ?string $transactionIsolationLevel = null;
                                                                                                                                                                                                                                                                                                          145
                                                                                                                                                                                                                                                                                                          146    /**
                                                                                                                                                                                                                                                                                                          147     * Set session time zone
                                                                                                                                                                                                                                                                                                          148     *
                                                                                                                                                                                                                                                                                                          149     * SET time_zone = timezone;
                                                                                                                                                                                                                                                                                                          150     *
                                                                                                                                                                                                                                                                                                          151     * - As the value 'SYSTEM', indicating that the server time zone is the same as the system time zone.
                                                                                                                                                                                                                                                                                                          152     * - As a string, an offset from UTC of the form [H]H:MM, prefixed with a + or -, such as '+10:00', '-6:00'
                                                                                                                                                                                                                                                                                                          153     *   Prior to MySQL 8.0.19, this value had to be in the range '-12:59' to '+13:00'
                                                                                                                                                                                                                                                                                                          154     * - As a named time zone, such as 'Europe/Helsinki', 'US/Eastern', 'MET', or 'UTC'.
                                                                                                                                                                                                                                                                                                          155     *
                                                                                                                                                                                                                                                                                                          156     * @see https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
                                                                                                                                                                                                                                                                                                          157     */
                                                                                                                                                                                                                                                                                                          158    protected string $timeZone = 'UTC';
                                                                                                                                                                                                                                                                                                          159
                                                                                                                                                                                                                                                                                                          160    /**
                                                                                                                                                                                                                                                                                                          161     * The number of seconds the server waits for activity
                                                                                                                                                                                                                                                                                                          162     * on a non-interactive TCP/IP or UNIX File connection before closing it
                                                                                                                                                                                                                                                                                                          163     */
                                                                                                                                                                                                                                                                                                          164    protected int $nonInteractiveTimeout = 7200;
                                                                                                                                                                                                                                                                                                          165
                                                                                                                                                                                                                                                                                                          166    /**
                                                                                                                                                                                                                                                                                                          167     * Recommended defaults:
                                                                                                                                                                                                                                                                                                          168     * false for rw connection
                                                                                                                                                                                                                                                                                                          169     * true for ro connection
                                                                                                                                                                                                                                                                                                          170     * true for async connection
                                                                                                                                                                                                                                                                                                          171     */
                                                                                                                                                                                                                                                                                                          172    protected bool $autocommit = false;
                                                                                                                                                                                                                                                                                                          173
                                                                                                                                                                                                                                                                                                          174    protected string $charset = 'utf8mb4';
                                                                                                                                                                                                                                                                                                          175
                                                                                                                                                                                                                                                                                                          176    /**
                                                                                                                                                                                                                                                                                                          177     * Transaction block will also carry over to the next script
                                                                                                                                                                                                                                                                                                          178     * which uses that connection if script execution ends before the transaction block does
                                                                                                                                                                                                                                                                                                          179     *
                                                                                                                                                                                                                                                                                                          180     * @see http://php.net/manual/en/features.persistent-connections.php
                                                                                                                                                                                                                                                                                                          181     */
                                                                                                                                                                                                                                                                                                          182    protected bool $persistent = false;
                                                                                                                                                                                                                                                                                                          183
                                                                                                                                                                                                                                                                                                          184    /**
                                                                                                                                                                                                                                                                                                          185     * Readonly connection
                                                                                                                                                                                                                                                                                                          186     */
                                                                                                                                                                                                                                                                                                          187    protected bool $readonly = false;
                                                                                                                                                                                                                                                                                                          188
                                                                                                                                                                                                                                                                                                          189    public function getNonInteractiveTimeout(): int
                                                                                                                                                                                                                                                                                                          190    {
                                                                                                                                                                                                                                                                                                          191        return $this->nonInteractiveTimeout;
                                                                                                                                                                                                                                                                                                          192    }
                                                                                                                                                                                                                                                                                                          193
                                                                                                                                                                                                                                                                                                          194    public function setNonInteractiveTimeout(int $nonInteractiveTimeout): void
                                                                                                                                                                                                                                                                                                          195    {
                                                                                                                                                                                                                                                                                                          196        $this->nonInteractiveTimeout = $nonInteractiveTimeout;
                                                                                                                                                                                                                                                                                                          197    }
                                                                                                                                                                                                                                                                                                          198
                                                                                                                                                                                                                                                                                                          199    public function getServerSideSelectTimeout(): int
                                                                                                                                                                                                                                                                                                          200    {
                                                                                                                                                                                                                                                                                                          201        return $this->serverSideSelectTimeout;
                                                                                                                                                                                                                                                                                                          202    }
                                                                                                                                                                                                                                                                                                          203
                                                                                                                                                                                                                                                                                                          204    public function setServerSideSelectTimeout(int $seconds): void
                                                                                                                                                                                                                                                                                                          205    {
                                                                                                                                                                                                                                                                                                          206        $this->serverSideSelectTimeout = $seconds;
                                                                                                                                                                                                                                                                                                          207    }
                                                                                                                                                                                                                                                                                                          208
                                                                                                                                                                                                                                                                                                          209    public function getConnectTimeout(): int
                                                                                                                                                                                                                                                                                                          210    {
                                                                                                                                                                                                                                                                                                          211        return $this->connectTimeout;
                                                                                                                                                                                                                                                                                                          212    }
                                                                                                                                                                                                                                                                                                          213
                                                                                                                                                                                                                                                                                                          214    public function setConnectTimeout(int $seconds): void
                                                                                                                                                                                                                                                                                                          215    {
                                                                                                                                                                                                                                                                                                          216        $this->connectTimeout = $seconds;
                                                                                                                                                                                                                                                                                                          217    }
                                                                                                                                                                                                                                                                                                          218
                                                                                                                                                                                                                                                                                                          219    public function getErrorReporting(): int
                                                                                                                                                                                                                                                                                                          220    {
                                                                                                                                                                                                                                                                                                          221        return $this->errorReporting;
                                                                                                                                                                                                                                                                                                          222    }
                                                                                                                                                                                                                                                                                                          223
                                                                                                                                                                                                                                                                                                          224    public function setErrorReporting(int $errorReporting): void
                                                                                                                                                                                                                                                                                                          225    {
                                                                                                                                                                                                                                                                                                          226        $this->errorReporting = $errorReporting;
                                                                                                                                                                                                                                                                                                          227    }
                                                                                                                                                                                                                                                                                                          228
                                                                                                                                                                                                                                                                                                          229    public function getReadTimeout(): int
                                                                                                                                                                                                                                                                                                          230    {
                                                                                                                                                                                                                                                                                                          231        return $this->readTimeout;
                                                                                                                                                                                                                                                                                                          232    }
                                                                                                                                                                                                                                                                                                          233
                                                                                                                                                                                                                                                                                                          234    public function setReadTimeout(int $seconds): void
                                                                                                                                                                                                                                                                                                          235    {
                                                                                                                                                                                                                                                                                                          236        $this->readTimeout = $seconds;
                                                                                                                                                                                                                                                                                                          237    }
                                                                                                                                                                                                                                                                                                          238
                                                                                                                                                                                                                                                                                                          239    public function getNetworkBufferSize(): int
                                                                                                                                                                                                                                                                                                          240    {
                                                                                                                                                                                                                                                                                                          241        return $this->networkBufferSize;
                                                                                                                                                                                                                                                                                                          242    }
                                                                                                                                                                                                                                                                                                          243
                                                                                                                                                                                                                                                                                                          244    /**
                                                                                                                                                                                                                                                                                                          245     * @param int $bytes bytes
                                                                                                                                                                                                                                                                                                          246     * @throws \sql\MydbException\OptionException
                                                                                                                                                                                                                                                                                                          247     */
                                                                                                                                                                                                                                                                                                          248    public function setNetworkBufferSize(int $bytes): void
                                                                                                                                                                                                                                                                                                          249    {
                                                                                                                                                                                                                                                                                                          250        if ($bytes < self::NET_CMD_BUFFER_SIZE_MIN || $bytes > self::NET_CMD_BUFFER_SIZE_MAX) {
                                                                                                                                                                                                                                                                                                          251            throw new OptionException();
                                                                                                                                                                                                                                                                                                          252        }
                                                                                                                                                                                                                                                                                                          253        $this->networkBufferSize = $bytes;
                                                                                                                                                                                                                                                                                                          254    }
                                                                                                                                                                                                                                                                                                          255
                                                                                                                                                                                                                                                                                                          256    public function getNetworkReadBuffer(): int
                                                                                                                                                                                                                                                                                                          257    {
                                                                                                                                                                                                                                                                                                          258        return $this->networkReadBuffer;
                                                                                                                                                                                                                                                                                                          259    }
                                                                                                                                                                                                                                                                                                          260
                                                                                                                                                                                                                                                                                                          261    /**
                                                                                                                                                                                                                                                                                                          262     * @throws \sql\MydbException\OptionException
                                                                                                                                                                                                                                                                                                          263     */
                                                                                                                                                                                                                                                                                                          264    public function setNetworkReadBuffer(int $bytes): void
                                                                                                                                                                                                                                                                                                          265    {
                                                                                                                                                                                                                                                                                                          266        if ($bytes < self::NET_READ_BUFFER_MIN || $bytes > self::NET_READ_BUFFER_MAX) {
                                                                                                                                                                                                                                                                                                          267            throw new OptionException();
                                                                                                                                                                                                                                                                                                          268        }
                                                                                                                                                                                                                                                                                                          269        $this->networkReadBuffer = $bytes;
                                                                                                                                                                                                                                                                                                          270    }
                                                                                                                                                                                                                                                                                                          271
                                                                                                                                                                                                                                                                                                          272    public function getClientErrorLevel(): int
                                                                                                                                                                                                                                                                                                          273    {
                                                                                                                                                                                                                                                                                                          274        return $this->clientErrorLevel;
                                                                                                                                                                                                                                                                                                          275    }
                                                                                                                                                                                                                                                                                                          276
                                                                                                                                                                                                                                                                                                          277    /**
                                                                                                                                                                                                                                                                                                          278     * @throws \sql\MydbException\OptionException
                                                                                                                                                                                                                                                                                                          279     */
                                                                                                                                                                                                                                                                                                          280    public function setClientErrorLevel(int $mysqliReport): void
                                                                                                                                                                                                                                                                                                          281    {
                                                                                                                                                                                                                                                                                                          282        if ($mysqliReport > 255 || $mysqliReport < 0) {
                                                                                                                                                                                                                                                                                                          283            throw new OptionException();
                                                                                                                                                                                                                                                                                                          284        }
                                                                                                                                                                                                                                                                                                          285        $this->clientErrorLevel = $mysqliReport;
                                                                                                                                                                                                                                                                                                          286    }
                                                                                                                                                                                                                                                                                                          287
                                                                                                                                                                                                                                                                                                          288    public function getTimeZone(): string
                                                                                                                                                                                                                                                                                                          289    {
                                                                                                                                                                                                                                                                                                          290        return $this->timeZone;
                                                                                                                                                                                                                                                                                                          291    }
                                                                                                                                                                                                                                                                                                          292
                                                                                                                                                                                                                                                                                                          293    public function setTimeZone(string $timeZone): void
                                                                                                                                                                                                                                                                                                          294    {
                                                                                                                                                                                                                                                                                                          295        $this->timeZone = $timeZone;
                                                                                                                                                                                                                                                                                                          296    }
                                                                                                                                                                                                                                                                                                          297
                                                                                                                                                                                                                                                                                                          298    public function isAutocommit(): bool
                                                                                                                                                                                                                                                                                                          299    {
                                                                                                                                                                                                                                                                                                          300        return $this->autocommit;
                                                                                                                                                                                                                                                                                                          301    }
                                                                                                                                                                                                                                                                                                          302
                                                                                                                                                                                                                                                                                                          303    public function setAutocommit(bool $autocommit): void
                                                                                                                                                                                                                                                                                                          304    {
                                                                                                                                                                                                                                                                                                          305        $this->autocommit = $autocommit;
                                                                                                                                                                                                                                                                                                          306    }
                                                                                                                                                                                                                                                                                                          307
                                                                                                                                                                                                                                                                                                          308    public function getCharset(): string
                                                                                                                                                                                                                                                                                                          309    {
                                                                                                                                                                                                                                                                                                          310        return $this->charset;
                                                                                                                                                                                                                                                                                                          311    }
                                                                                                                                                                                                                                                                                                          312
                                                                                                                                                                                                                                                                                                          313    public function setCharset(string $charset): void
                                                                                                                                                                                                                                                                                                          314    {
                                                                                                                                                                                                                                                                                                          315        $this->charset = $charset;
                                                                                                                                                                                                                                                                                                          316    }
                                                                                                                                                                                                                                                                                                          317
                                                                                                                                                                                                                                                                                                          318    public function isPersistent(): bool
                                                                                                                                                                                                                                                                                                          319    {
                                                                                                                                                                                                                                                                                                          320        return $this->persistent;
                                                                                                                                                                                                                                                                                                          321    }
                                                                                                                                                                                                                                                                                                          322
                                                                                                                                                                                                                                                                                                          323    public function setPersistent(bool $persistent): void
                                                                                                                                                                                                                                                                                                          324    {
                                                                                                                                                                                                                                                                                                          325        $this->persistent = $persistent;
                                                                                                                                                                                                                                                                                                          326    }
                                                                                                                                                                                                                                                                                                          327
                                                                                                                                                                                                                                                                                                          328    public function isReadonly(): bool
                                                                                                                                                                                                                                                                                                          329    {
                                                                                                                                                                                                                                                                                                          330        return $this->readonly;
                                                                                                                                                                                                                                                                                                          331    }
                                                                                                                                                                                                                                                                                                          332
                                                                                                                                                                                                                                                                                                          333    public function setReadonly(bool $readonly): void
                                                                                                                                                                                                                                                                                                          334    {
                                                                                                                                                                                                                                                                                                          335        $this->readonly = $readonly;
                                                                                                                                                                                                                                                                                                          336    }
                                                                                                                                                                                                                                                                                                          337
                                                                                                                                                                                                                                                                                                          338    public function getTransactionIsolationLevel(): ?string
                                                                                                                                                                                                                                                                                                          339    {
                                                                                                                                                                                                                                                                                                          340        $userLevel = $this->transactionIsolationLevel;
                                                                                                                                                                                                                                                                                                          341        if (null === $userLevel && $this->isReadonly()) {
                                                                                                                                                                                                                                                                                                          342            /**
                                                                                                                                                                                                                                                                                                          343             * Optimal defaults for readonly connection
                                                                                                                                                                                                                                                                                                          344             */
                                                                                                                                                                                                                                                                                                          345            return self::TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED;
                                                                                                                                                                                                                                                                                                          346        }
                                                                                                                                                                                                                                                                                                          347
                                                                                                                                                                                                                                                                                                          348        return $userLevel;
                                                                                                                                                                                                                                                                                                          349    }
                                                                                                                                                                                                                                                                                                          350
                                                                                                                                                                                                                                                                                                          351    public function setTransactionIsolationLevel(string $isolationLevel): void
                                                                                                                                                                                                                                                                                                          352    {
                                                                                                                                                                                                                                                                                                          353        $this->transactionIsolationLevel = $isolationLevel;
                                                                                                                                                                                                                                                                                                          354    }
                                                                                                                                                                                                                                                                                                          355}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbOptionsInterface.php.html b/php/phpunit/html/MydbOptionsInterface.php.html new file mode 100644 index 00000000000..4ef035d9dae --- /dev/null +++ b/php/phpunit/html/MydbOptionsInterface.php.html @@ -0,0 +1,175 @@ + + + + + Code Coverage for /app/src/sql/MydbOptionsInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23interface MydbOptionsInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25    /**
                                                                                                                                                                                                                                                                                                          26     * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html
                                                                                                                                                                                                                                                                                                          27     */
                                                                                                                                                                                                                                                                                                          28    public const TRANSACTION_ISOLATION_LEVEL_DEFAULT          = 'REPEATABLE READ';
                                                                                                                                                                                                                                                                                                          29    public const TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ  = 'REPEATABLE READ';
                                                                                                                                                                                                                                                                                                          30    public const TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED   = 'READ COMMITTED';
                                                                                                                                                                                                                                                                                                          31    public const TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED = 'READ UNCOMMITTED';
                                                                                                                                                                                                                                                                                                          32    public const TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE     = 'SERIALIZABLE';
                                                                                                                                                                                                                                                                                                          33
                                                                                                                                                                                                                                                                                                          34    public function getNonInteractiveTimeout(): int;
                                                                                                                                                                                                                                                                                                          35
                                                                                                                                                                                                                                                                                                          36    public function setNonInteractiveTimeout(int $nonInteractiveTimeout): void;
                                                                                                                                                                                                                                                                                                          37
                                                                                                                                                                                                                                                                                                          38    public function getServerSideSelectTimeout(): int;
                                                                                                                                                                                                                                                                                                          39
                                                                                                                                                                                                                                                                                                          40    public function setServerSideSelectTimeout(int $seconds): void;
                                                                                                                                                                                                                                                                                                          41
                                                                                                                                                                                                                                                                                                          42    public function getConnectTimeout(): int;
                                                                                                                                                                                                                                                                                                          43
                                                                                                                                                                                                                                                                                                          44    public function setConnectTimeout(int $seconds): void;
                                                                                                                                                                                                                                                                                                          45
                                                                                                                                                                                                                                                                                                          46    public function getErrorReporting(): int;
                                                                                                                                                                                                                                                                                                          47
                                                                                                                                                                                                                                                                                                          48    public function setErrorReporting(int $errorReporting): void;
                                                                                                                                                                                                                                                                                                          49
                                                                                                                                                                                                                                                                                                          50    public function getReadTimeout(): int;
                                                                                                                                                                                                                                                                                                          51
                                                                                                                                                                                                                                                                                                          52    public function setReadTimeout(int $seconds): void;
                                                                                                                                                                                                                                                                                                          53
                                                                                                                                                                                                                                                                                                          54    public function getNetworkBufferSize(): int;
                                                                                                                                                                                                                                                                                                          55
                                                                                                                                                                                                                                                                                                          56    public function setNetworkBufferSize(int $bytes): void;
                                                                                                                                                                                                                                                                                                          57
                                                                                                                                                                                                                                                                                                          58    public function getNetworkReadBuffer(): int;
                                                                                                                                                                                                                                                                                                          59
                                                                                                                                                                                                                                                                                                          60    public function setNetworkReadBuffer(int $bytes): void;
                                                                                                                                                                                                                                                                                                          61
                                                                                                                                                                                                                                                                                                          62    public function getClientErrorLevel(): int;
                                                                                                                                                                                                                                                                                                          63
                                                                                                                                                                                                                                                                                                          64    public function setClientErrorLevel(int $mysqliReport): void;
                                                                                                                                                                                                                                                                                                          65
                                                                                                                                                                                                                                                                                                          66    public function getTimeZone(): string;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    public function setTimeZone(string $timeZone): void;
                                                                                                                                                                                                                                                                                                          69
                                                                                                                                                                                                                                                                                                          70    public function isAutocommit(): bool;
                                                                                                                                                                                                                                                                                                          71
                                                                                                                                                                                                                                                                                                          72    public function setAutocommit(bool $autocommit): void;
                                                                                                                                                                                                                                                                                                          73
                                                                                                                                                                                                                                                                                                          74    public function getCharset(): string;
                                                                                                                                                                                                                                                                                                          75
                                                                                                                                                                                                                                                                                                          76    public function getTransactionIsolationLevel(): ?string;
                                                                                                                                                                                                                                                                                                          77
                                                                                                                                                                                                                                                                                                          78    public function setTransactionIsolationLevel(string $isolationLevel): void;
                                                                                                                                                                                                                                                                                                          79
                                                                                                                                                                                                                                                                                                          80    public function setCharset(string $charset): void;
                                                                                                                                                                                                                                                                                                          81
                                                                                                                                                                                                                                                                                                          82    public function isPersistent(): bool;
                                                                                                                                                                                                                                                                                                          83
                                                                                                                                                                                                                                                                                                          84    public function setPersistent(bool $persistent): void;
                                                                                                                                                                                                                                                                                                          85
                                                                                                                                                                                                                                                                                                          86    public function isReadonly(): bool;
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          88    public function setReadonly(bool $readonly): void;
                                                                                                                                                                                                                                                                                                          89}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbQueryBuilder.php.html b/php/phpunit/html/MydbQueryBuilder.php.html new file mode 100644 index 00000000000..c37f5535f0c --- /dev/null +++ b/php/phpunit/html/MydbQueryBuilder.php.html @@ -0,0 +1,750 @@ + + + + + Code Coverage for /app/src/sql/MydbQueryBuilder.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          122 / 122
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbQueryBuilder
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          122 / 122
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          10 / 10
                                                                                                                                                                                                                                                                                                          69
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           showColumnsLike
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           showKeys
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           insertOne
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          7 / 7
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           buildUpdateWhereMany
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          19 / 19
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          10
                                                                                                                                                                                                                                                                                                           buildUpdateWhere
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          12 / 12
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          6
                                                                                                                                                                                                                                                                                                           buildDeleteWhere
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          4
                                                                                                                                                                                                                                                                                                           buildWhere
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          36 / 36
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                           buildInsertMany
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          17 / 17
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          7
                                                                                                                                                                                                                                                                                                           escape
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          20 / 20
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use sql\MydbException\QueryBuilderEscapeException;
                                                                                                                                                                                                                                                                                                          19use sql\MydbException\QueryBuilderException;
                                                                                                                                                                                                                                                                                                          20use sql\MydbMysqli\MydbMysqliEscapeStringInterface;
                                                                                                                                                                                                                                                                                                          21use function array_map;
                                                                                                                                                                                                                                                                                                          22use function count;
                                                                                                                                                                                                                                                                                                          23use function implode;
                                                                                                                                                                                                                                                                                                          24use function in_array;
                                                                                                                                                                                                                                                                                                          25use function is_array;
                                                                                                                                                                                                                                                                                                          26use function is_float;
                                                                                                                                                                                                                                                                                                          27use function is_int;
                                                                                                                                                                                                                                                                                                          28use function is_null;
                                                                                                                                                                                                                                                                                                          29use function is_object;
                                                                                                                                                                                                                                                                                                          30use function is_string;
                                                                                                                                                                                                                                                                                                          31use function is_subclass_of;
                                                                                                                                                                                                                                                                                                          32use function key;
                                                                                                                                                                                                                                                                                                          33use function preg_match;
                                                                                                                                                                                                                                                                                                          34use function sprintf;
                                                                                                                                                                                                                                                                                                          35use function strlen;
                                                                                                                                                                                                                                                                                                          36use function strpos;
                                                                                                                                                                                                                                                                                                          37use function strtoupper;
                                                                                                                                                                                                                                                                                                          38use function substr;
                                                                                                                                                                                                                                                                                                          39use function trim;
                                                                                                                                                                                                                                                                                                          40
                                                                                                                                                                                                                                                                                                          41/**
                                                                                                                                                                                                                                                                                                          42 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          43 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          44 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          45 */
                                                                                                                                                                                                                                                                                                          46class MydbQueryBuilder implements MydbQueryBuilderInterface
                                                                                                                                                                                                                                                                                                          47{
                                                                                                                                                                                                                                                                                                          48
                                                                                                                                                                                                                                                                                                          49    public function __construct(protected MydbMysqliEscapeStringInterface $mysqli)
                                                                                                                                                                                                                                                                                                          50    {
                                                                                                                                                                                                                                                                                                          51    }
                                                                                                                                                                                                                                                                                                          52
                                                                                                                                                                                                                                                                                                          53    /**
                                                                                                                                                                                                                                                                                                          54     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          55     */
                                                                                                                                                                                                                                                                                                          56    public function showColumnsLike(string $table, string $column): string
                                                                                                                                                                                                                                                                                                          57    {
                                                                                                                                                                                                                                                                                                          58        if ('' === $table || '' === $column) {
                                                                                                                                                                                                                                                                                                          59            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          60        }
                                                                                                                                                                                                                                                                                                          61
                                                                                                                                                                                                                                                                                                          62        return "SHOW COLUMNS FROM " . $this->escape($table, '') . " LIKE " . $this->escape($column);
                                                                                                                                                                                                                                                                                                          63    }
                                                                                                                                                                                                                                                                                                          64
                                                                                                                                                                                                                                                                                                          65    /**
                                                                                                                                                                                                                                                                                                          66     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          67     */
                                                                                                                                                                                                                                                                                                          68    public function showKeys(string $table): string
                                                                                                                                                                                                                                                                                                          69    {
                                                                                                                                                                                                                                                                                                          70        if ('' === $table) {
                                                                                                                                                                                                                                                                                                          71            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          72        }
                                                                                                                                                                                                                                                                                                          73
                                                                                                                                                                                                                                                                                                          74        return 'SHOW KEYS FROM ' . $this->escape($table, '');
                                                                                                                                                                                                                                                                                                          75    }
                                                                                                                                                                                                                                                                                                          76
                                                                                                                                                                                                                                                                                                          77    /**
                                                                                                                                                                                                                                                                                                          78     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          79     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          80     * @psalm-return string
                                                                                                                                                                                                                                                                                                          81     */
                                                                                                                                                                                                                                                                                                          82    public function insertOne(array $data, string $table, string $type): string
                                                                                                                                                                                                                                                                                                          83    {
                                                                                                                                                                                                                                                                                                          84        if ('' === $table || 0 === count($data)) {
                                                                                                                                                                                                                                                                                                          85            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          86        }
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          88        $names = $values = [];
                                                                                                                                                                                                                                                                                                          89
                                                                                                                                                                                                                                                                                                          90        foreach ($data as $name => $value) {
                                                                                                                                                                                                                                                                                                          91            $names[]  = $this->escape($name, "");
                                                                                                                                                                                                                                                                                                          92            $values[] = $this->escape($value);
                                                                                                                                                                                                                                                                                                          93        }
                                                                                                                                                                                                                                                                                                          94
                                                                                                                                                                                                                                                                                                          95        return sprintf('%s INTO %s (%s) VALUES (%s)', $type, $table, implode(',', $names), implode(',', $values));
                                                                                                                                                                                                                                                                                                          96    }
                                                                                                                                                                                                                                                                                                          97
                                                                                                                                                                                                                                                                                                          98    /**
                                                                                                                                                                                                                                                                                                          99     * @param array  $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']]
                                                                                                                                                                                                                                                                                                          100     * @param array  $where          ['col2' => 'value2', 'col3' => ['v3', 'v4']]
                                                                                                                                                                                                                                                                                                          101     * @param string $table          'mytable'
                                                                                                                                                                                                                                                                                                          102     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          103     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh
                                                                                                                                                                                                                                                                                                          104     */
                                                                                                                                                                                                                                                                                                          105    public function buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string
                                                                                                                                                                                                                                                                                                          106    {
                                                                                                                                                                                                                                                                                                          107        if ('' === $table) {
                                                                                                                                                                                                                                                                                                          108            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          109        }
                                                                                                                                                                                                                                                                                                          110
                                                                                                                                                                                                                                                                                                          111        $sql = 'UPDATE ' . $table;
                                                                                                                                                                                                                                                                                                          112        /**
                                                                                                                                                                                                                                                                                                          113         * @phpcs:disable Generic.Files.LineLength.TooLong
                                                                                                                                                                                                                                                                                                          114         * @var array<array-key, array<array-key, array<array-key, (float|int|string|\sql\MydbExpressionInterface|null)>>> $columnSetWhere
                                                                                                                                                                                                                                                                                                          115         */
                                                                                                                                                                                                                                                                                                          116        foreach ($columnSetWhere as $column => $updateValuesMap) {
                                                                                                                                                                                                                                                                                                          117            /**
                                                                                                                                                                                                                                                                                                          118             * @psalm-suppress DocblockTypeContradiction
                                                                                                                                                                                                                                                                                                          119             */
                                                                                                                                                                                                                                                                                                          120            if (!is_string($column) || !is_array($updateValuesMap) || 0 === count($updateValuesMap)) {
                                                                                                                                                                                                                                                                                                          121                throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          122            }
                                                                                                                                                                                                                                                                                                          123            /**
                                                                                                                                                                                                                                                                                                          124             * @psalm-suppress InvalidOperand
                                                                                                                                                                                                                                                                                                          125             */
                                                                                                                                                                                                                                                                                                          126            $sql .= ' SET ' . $column . ' = CASE';
                                                                                                                                                                                                                                                                                                          127
                                                                                                                                                                                                                                                                                                          128            foreach ($updateValuesMap as $newValueWhere) {
                                                                                                                                                                                                                                                                                                          129                if (!isset($newValueWhere[0], $newValueWhere[1]) || 2 !== count($newValueWhere)) {
                                                                                                                                                                                                                                                                                                          130                    throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          131                }
                                                                                                                                                                                                                                                                                                          132
                                                                                                                                                                                                                                                                                                          133                $escapedWhereValue = $this->escape($newValueWhere[0]);
                                                                                                                                                                                                                                                                                                          134                $escapedThenValue  = $this->escape($newValueWhere[1]);
                                                                                                                                                                                                                                                                                                          135
                                                                                                                                                                                                                                                                                                          136                /**
                                                                                                                                                                                                                                                                                                          137                 * @psalm-suppress InvalidOperand
                                                                                                                                                                                                                                                                                                          138                 */
                                                                                                                                                                                                                                                                                                          139                $sql .= ' WHEN (' . $column . ' = ' . $escapedWhereValue . ')';
                                                                                                                                                                                                                                                                                                          140                $sql .= ' THEN ' . $escapedThenValue;
                                                                                                                                                                                                                                                                                                          141            }
                                                                                                                                                                                                                                                                                                          142
                                                                                                                                                                                                                                                                                                          143            /**
                                                                                                                                                                                                                                                                                                          144             * @psalm-suppress InvalidOperand
                                                                                                                                                                                                                                                                                                          145             */
                                                                                                                                                                                                                                                                                                          146            $sql .= ' ELSE ' . $column;
                                                                                                                                                                                                                                                                                                          147        }
                                                                                                                                                                                                                                                                                                          148
                                                                                                                                                                                                                                                                                                          149        $sql .= ' END';
                                                                                                                                                                                                                                                                                                          150
                                                                                                                                                                                                                                                                                                          151        if (count($where) > 0) {
                                                                                                                                                                                                                                                                                                          152            $sql .= ' ' . $this->buildWhere($where);
                                                                                                                                                                                                                                                                                                          153        }
                                                                                                                                                                                                                                                                                                          154
                                                                                                                                                                                                                                                                                                          155        return $sql;
                                                                                                                                                                                                                                                                                                          156    }
                                                                                                                                                                                                                                                                                                          157
                                                                                                                                                                                                                                                                                                          158    /**
                                                                                                                                                                                                                                                                                                          159     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          160     * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update
                                                                                                                                                                                                                                                                                                          161     */
                                                                                                                                                                                                                                                                                                          162    public function buildUpdateWhere(
                                                                                                                                                                                                                                                                                                          163        array $update,
                                                                                                                                                                                                                                                                                                          164        array $whereFields,
                                                                                                                                                                                                                                                                                                          165        string $table,
                                                                                                                                                                                                                                                                                                          166        array $whereNotFields = [],
                                                                                                                                                                                                                                                                                                          167    ): ?string {
                                                                                                                                                                                                                                                                                                          168        if ('' === $table || [] === $update || is_int(key($update))) {
                                                                                                                                                                                                                                                                                                          169            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          170        }
                                                                                                                                                                                                                                                                                                          171
                                                                                                                                                                                                                                                                                                          172        $values = [];
                                                                                                                                                                                                                                                                                                          173        $queryWhere = $this->buildWhere($whereFields, $whereNotFields);
                                                                                                                                                                                                                                                                                                          174
                                                                                                                                                                                                                                                                                                          175        foreach ($update as $field => $value) {
                                                                                                                                                                                                                                                                                                          176
                                                                                                                                                                                                                                                                                                          177            /**
                                                                                                                                                                                                                                                                                                          178             * @psalm-suppress RedundantCastGivenDocblockType
                                                                                                                                                                                                                                                                                                          179             */
                                                                                                                                                                                                                                                                                                          180            $f = (string) $field . ' = ' . $this->escape($value);
                                                                                                                                                                                                                                                                                                          181            $values[] = $f;
                                                                                                                                                                                                                                                                                                          182        }
                                                                                                                                                                                                                                                                                                          183
                                                                                                                                                                                                                                                                                                          184        $queryUpdate = implode(', ', $values);
                                                                                                                                                                                                                                                                                                          185
                                                                                                                                                                                                                                                                                                          186        $result = 'UPDATE ' . $table . ' SET ' . $queryUpdate;
                                                                                                                                                                                                                                                                                                          187        if ('' !== $queryWhere) {
                                                                                                                                                                                                                                                                                                          188            $result .= ' ' . $queryWhere;
                                                                                                                                                                                                                                                                                                          189        }
                                                                                                                                                                                                                                                                                                          190
                                                                                                                                                                                                                                                                                                          191        return $result;
                                                                                                                                                                                                                                                                                                          192    }
                                                                                                                                                                                                                                                                                                          193
                                                                                                                                                                                                                                                                                                          194    /**
                                                                                                                                                                                                                                                                                                          195     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          196     */
                                                                                                                                                                                                                                                                                                          197    public function buildDeleteWhere(string $table, array $fields = [], array $negativeFields = []): ?string
                                                                                                                                                                                                                                                                                                          198    {
                                                                                                                                                                                                                                                                                                          199        if ('' === $table || 0 === count($fields) || !is_string(key($fields))) {
                                                                                                                                                                                                                                                                                                          200            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          201        }
                                                                                                                                                                                                                                                                                                          202
                                                                                                                                                                                                                                                                                                          203        $queryWhere = $this->buildWhere($fields, $negativeFields);
                                                                                                                                                                                                                                                                                                          204
                                                                                                                                                                                                                                                                                                          205        /** @lang text */
                                                                                                                                                                                                                                                                                                          206        return 'DELETE FROM ' . $this->escape($table, '') . ' ' . $queryWhere;
                                                                                                                                                                                                                                                                                                          207    }
                                                                                                                                                                                                                                                                                                          208
                                                                                                                                                                                                                                                                                                          209    /**
                                                                                                                                                                                                                                                                                                          210     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          211     * @todo will this need real db connection to escape()? add test for all possible cases
                                                                                                                                                                                                                                                                                                          212     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh
                                                                                                                                                                                                                                                                                                          213     */
                                                                                                                                                                                                                                                                                                          214    public function buildWhere(array $fields, array $negativeFields = [], array $likeFields = []): string
                                                                                                                                                                                                                                                                                                          215    {
                                                                                                                                                                                                                                                                                                          216        if ([] === $fields) {
                                                                                                                                                                                                                                                                                                          217            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          218        }
                                                                                                                                                                                                                                                                                                          219
                                                                                                                                                                                                                                                                                                          220        $where = [];
                                                                                                                                                                                                                                                                                                          221
                                                                                                                                                                                                                                                                                                          222        /**
                                                                                                                                                                                                                                                                                                          223         * @psalm-var float|int|string|array|\sql\MydbExpressionInterface|null $value
                                                                                                                                                                                                                                                                                                          224         */
                                                                                                                                                                                                                                                                                                          225        foreach ($fields as $field => $value) {
                                                                                                                                                                                                                                                                                                          226            /**
                                                                                                                                                                                                                                                                                                          227             * @psalm-suppress InvalidOperand
                                                                                                                                                                                                                                                                                                          228             */
                                                                                                                                                                                                                                                                                                          229            $queryPart = (string) $field;
                                                                                                                                                                                                                                                                                                          230            $isNegative = in_array($field, $negativeFields, true);
                                                                                                                                                                                                                                                                                                          231            $inNull = false;
                                                                                                                                                                                                                                                                                                          232
                                                                                                                                                                                                                                                                                                          233            /**
                                                                                                                                                                                                                                                                                                          234             * @TODO Expression support?
                                                                                                                                                                                                                                                                                                          235             */
                                                                                                                                                                                                                                                                                                          236
                                                                                                                                                                                                                                                                                                          237            if (null === $value) {
                                                                                                                                                                                                                                                                                                          238                $queryPart .= ' IS ' . ($isNegative ? 'NOT ' : '') . 'NULL';
                                                                                                                                                                                                                                                                                                          239            } elseif (is_array($value)) {
                                                                                                                                                                                                                                                                                                          240                $queryPart .= ($isNegative ? ' NOT' : '') . " IN (";
                                                                                                                                                                                                                                                                                                          241                $inVals = [];
                                                                                                                                                                                                                                                                                                          242
                                                                                                                                                                                                                                                                                                          243                /**
                                                                                                                                                                                                                                                                                                          244                 * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $val
                                                                                                                                                                                                                                                                                                          245                 */
                                                                                                                                                                                                                                                                                                          246                foreach ($value as $val) {
                                                                                                                                                                                                                                                                                                          247                    if (null === $val) {
                                                                                                                                                                                                                                                                                                          248                        $inNull = true;
                                                                                                                                                                                                                                                                                                          249                    } else {
                                                                                                                                                                                                                                                                                                          250                        $inValEscaped = $this->escape($val);
                                                                                                                                                                                                                                                                                                          251                        $inVals[] = $inValEscaped;
                                                                                                                                                                                                                                                                                                          252                    }
                                                                                                                                                                                                                                                                                                          253                }
                                                                                                                                                                                                                                                                                                          254
                                                                                                                                                                                                                                                                                                          255                $queryPart .= implode(',', $inVals) . ')';
                                                                                                                                                                                                                                                                                                          256            } else {
                                                                                                                                                                                                                                                                                                          257                $equality = ($isNegative ? '!' : '') . "=";
                                                                                                                                                                                                                                                                                                          258
                                                                                                                                                                                                                                                                                                          259                if (in_array($field, $likeFields, true)) {
                                                                                                                                                                                                                                                                                                          260                    $equality = ($isNegative ? ' NOT ' : ' ') . "LIKE ";
                                                                                                                                                                                                                                                                                                          261                }
                                                                                                                                                                                                                                                                                                          262
                                                                                                                                                                                                                                                                                                          263                $queryPart .= $equality;
                                                                                                                                                                                                                                                                                                          264                $queryPartEscaped = $this->escape($value);
                                                                                                                                                                                                                                                                                                          265                $queryPart .= $queryPartEscaped;
                                                                                                                                                                                                                                                                                                          266            }
                                                                                                                                                                                                                                                                                                          267
                                                                                                                                                                                                                                                                                                          268            if ($inNull) {
                                                                                                                                                                                                                                                                                                          269                $queryPart = sprintf(
                                                                                                                                                                                                                                                                                                          270                    ' (%s %s %s IS %s) ',
                                                                                                                                                                                                                                                                                                          271                    $queryPart,
                                                                                                                                                                                                                                                                                                          272                    $isNegative ? 'AND' : 'OR',
                                                                                                                                                                                                                                                                                                          273                    $field,
                                                                                                                                                                                                                                                                                                          274                    $isNegative ? 'NOT NULL' : 'NULL',
                                                                                                                                                                                                                                                                                                          275                );
                                                                                                                                                                                                                                                                                                          276            }
                                                                                                                                                                                                                                                                                                          277
                                                                                                                                                                                                                                                                                                          278            $where[] = $queryPart;
                                                                                                                                                                                                                                                                                                          279        }
                                                                                                                                                                                                                                                                                                          280
                                                                                                                                                                                                                                                                                                          281        $condition = [];
                                                                                                                                                                                                                                                                                                          282        $condition[] = implode(' AND ', $where);
                                                                                                                                                                                                                                                                                                          283
                                                                                                                                                                                                                                                                                                          284        return 'WHERE ' . trim(implode(' AND ', $condition));
                                                                                                                                                                                                                                                                                                          285    }
                                                                                                                                                                                                                                                                                                          286
                                                                                                                                                                                                                                                                                                          287    /**
                                                                                                                                                                                                                                                                                                          288     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          289     * @see https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
                                                                                                                                                                                                                                                                                                          290     * @param array<string> $cols
                                                                                                                                                                                                                                                                                                          291     */
                                                                                                                                                                                                                                                                                                          292    public function buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string
                                                                                                                                                                                                                                                                                                          293    {
                                                                                                                                                                                                                                                                                                          294        if ('' === $table || [] === $data || [] === $cols) {
                                                                                                                                                                                                                                                                                                          295            throw new QueryBuilderException();
                                                                                                                                                                                                                                                                                                          296        }
                                                                                                                                                                                                                                                                                                          297
                                                                                                                                                                                                                                                                                                          298        /**
                                                                                                                                                                                                                                                                                                          299         * @phpcs:disable SlevomatCodingStandard.Functions.DisallowArrowFunction
                                                                                                                                                                                                                                                                                                          300         * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          301         */
                                                                                                                                                                                                                                                                                                          302        $mapper = function (array $item): string {
                                                                                                                                                                                                                                                                                                          303            $escapedArgs = implode(
                                                                                                                                                                                                                                                                                                          304                ', ',
                                                                                                                                                                                                                                                                                                          305                /**
                                                                                                                                                                                                                                                                                                          306                 * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input
                                                                                                                                                                                                                                                                                                          307                 * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          308                 */
                                                                                                                                                                                                                                                                                                          309                array_map(function ($input) {
                                                                                                                                                                                                                                                                                                          310                        /**
                                                                                                                                                                                                                                                                                                          311                         * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input
                                                                                                                                                                                                                                                                                                          312                         * @phan-suppress-next-line PhanThrowTypeAbsentForCall
                                                                                                                                                                                                                                                                                                          313                         */
                                                                                                                                                                                                                                                                                                          314                        return $this->escape($input);
                                                                                                                                                                                                                                                                                                          315                }, $item),
                                                                                                                                                                                                                                                                                                          316            );
                                                                                                                                                                                                                                                                                                          317
                                                                                                                                                                                                                                                                                                          318            return '(' . $escapedArgs . ')';
                                                                                                                                                                                                                                                                                                          319        };
                                                                                                                                                                                                                                                                                                          320
                                                                                                                                                                                                                                                                                                          321        $values = array_map($mapper, $data);
                                                                                                                                                                                                                                                                                                          322
                                                                                                                                                                                                                                                                                                          323        $query = "INSERT " . ($ignore ? 'IGNORE ' : '') . "INTO " . $table . " ";
                                                                                                                                                                                                                                                                                                          324        $query .= "(" . implode(', ', $cols) . ") VALUES " . implode(', ', $values);
                                                                                                                                                                                                                                                                                                          325
                                                                                                                                                                                                                                                                                                          326        if ('' !== $onDuplicate && false === $ignore) {
                                                                                                                                                                                                                                                                                                          327            $query .= ' ON DUPLICATE KEY UPDATE ' . $onDuplicate;
                                                                                                                                                                                                                                                                                                          328        }
                                                                                                                                                                                                                                                                                                          329
                                                                                                                                                                                                                                                                                                          330        return $query;
                                                                                                                                                                                                                                                                                                          331    }
                                                                                                                                                                                                                                                                                                          332
                                                                                                                                                                                                                                                                                                          333    /**
                                                                                                                                                                                                                                                                                                          334     * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped
                                                                                                                                                                                                                                                                                                          335     * @SuppressWarnings(PHPMD.NPathComplexity)
                                                                                                                                                                                                                                                                                                          336     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          337     * @todo reduce NPathComplexity
                                                                                                                                                                                                                                                                                                          338     * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh
                                                                                                                                                                                                                                                                                                          339     */
                                                                                                                                                                                                                                                                                                          340    public function escape($unescaped, string $quote = "'"): string
                                                                                                                                                                                                                                                                                                          341    {
                                                                                                                                                                                                                                                                                                          342        if (is_float($unescaped)) {
                                                                                                                                                                                                                                                                                                          343            return (string) $unescaped;
                                                                                                                                                                                                                                                                                                          344        }
                                                                                                                                                                                                                                                                                                          345
                                                                                                                                                                                                                                                                                                          346        if (is_int($unescaped)) {
                                                                                                                                                                                                                                                                                                          347            return (string) $unescaped;
                                                                                                                                                                                                                                                                                                          348        }
                                                                                                                                                                                                                                                                                                          349
                                                                                                                                                                                                                                                                                                          350        /**
                                                                                                                                                                                                                                                                                                          351         * Not quoting '0x...' decimal values
                                                                                                                                                                                                                                                                                                          352         */
                                                                                                                                                                                                                                                                                                          353        if (is_string($unescaped) && 0 === strpos($unescaped, '0x') && preg_match('/^[a-zA-Z0-9]+$/', $unescaped)) {
                                                                                                                                                                                                                                                                                                          354            if (0 === strlen($unescaped) % 2) {
                                                                                                                                                                                                                                                                                                          355                return '0x' . strtoupper(substr($unescaped, 2));
                                                                                                                                                                                                                                                                                                          356            }
                                                                                                                                                                                                                                                                                                          357        }
                                                                                                                                                                                                                                                                                                          358
                                                                                                                                                                                                                                                                                                          359        if (is_object($unescaped)) {
                                                                                                                                                                                                                                                                                                          360            /**
                                                                                                                                                                                                                                                                                                          361             * PHP <=7.4
                                                                                                                                                                                                                                                                                                          362             */
                                                                                                                                                                                                                                                                                                          363            if ($unescaped instanceof MydbExpressionInterface) {
                                                                                                                                                                                                                                                                                                          364                return (string) $unescaped;
                                                                                                                                                                                                                                                                                                          365            }
                                                                                                                                                                                                                                                                                                          366
                                                                                                                                                                                                                                                                                                          367            /**
                                                                                                                                                                                                                                                                                                          368             * PHP >=8.0
                                                                                                                                                                                                                                                                                                          369             * @psalm-suppress ArgumentTypeCoercion
                                                                                                                                                                                                                                                                                                          370             */
                                                                                                                                                                                                                                                                                                          371            if (is_subclass_of($unescaped, 'Stringable')) {
                                                                                                                                                                                                                                                                                                          372                return (string) $unescaped;
                                                                                                                                                                                                                                                                                                          373            }
                                                                                                                                                                                                                                                                                                          374        }
                                                                                                                                                                                                                                                                                                          375
                                                                                                                                                                                                                                                                                                          376        if (is_null($unescaped)) {
                                                                                                                                                                                                                                                                                                          377            return '' !== $quote ? $quote . '' . $quote : '';
                                                                                                                                                                                                                                                                                                          378        }
                                                                                                                                                                                                                                                                                                          379
                                                                                                                                                                                                                                                                                                          380        /**
                                                                                                                                                                                                                                                                                                          381         * @psalm-suppress RedundantCastGivenDocblockType
                                                                                                                                                                                                                                                                                                          382         */
                                                                                                                                                                                                                                                                                                          383        if (preg_match('/^(\w)*$/', (string) $unescaped) || preg_match('/^(\w\s)*$/', (string) $unescaped)) {
                                                                                                                                                                                                                                                                                                          384            return '' !== $quote ? $quote . ((string) $unescaped) . $quote : (string) $unescaped;
                                                                                                                                                                                                                                                                                                          385        }
                                                                                                                                                                                                                                                                                                          386
                                                                                                                                                                                                                                                                                                          387        /**
                                                                                                                                                                                                                                                                                                          388         * @psalm-suppress RedundantCastGivenDocblockType
                                                                                                                                                                                                                                                                                                          389         */
                                                                                                                                                                                                                                                                                                          390        $result = $this->mysqli->realEscapeString((string) $unescaped);
                                                                                                                                                                                                                                                                                                          391        if (null === $result) {
                                                                                                                                                                                                                                                                                                          392            /**
                                                                                                                                                                                                                                                                                                          393             * @psalm-suppress RedundantCastGivenDocblockType
                                                                                                                                                                                                                                                                                                          394             */
                                                                                                                                                                                                                                                                                                          395            throw new QueryBuilderException((new QueryBuilderEscapeException((string) $unescaped))->getMessage());
                                                                                                                                                                                                                                                                                                          396        }
                                                                                                                                                                                                                                                                                                          397
                                                                                                                                                                                                                                                                                                          398        return '' !== $quote ? $quote . $result . $quote : $result;
                                                                                                                                                                                                                                                                                                          399    }
                                                                                                                                                                                                                                                                                                          400}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbQueryBuilderInterface.php.html b/php/phpunit/html/MydbQueryBuilderInterface.php.html new file mode 100644 index 00000000000..ed69d9422ad --- /dev/null +++ b/php/phpunit/html/MydbQueryBuilderInterface.php.html @@ -0,0 +1,159 @@ + + + + + Code Coverage for /app/src/sql/MydbQueryBuilderInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18/**
                                                                                                                                                                                                                                                                                                          19 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          20 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          21 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          22 */
                                                                                                                                                                                                                                                                                                          23interface MydbQueryBuilderInterface
                                                                                                                                                                                                                                                                                                          24{
                                                                                                                                                                                                                                                                                                          25    public const SQL_INSERT  = 'INSERT';
                                                                                                                                                                                                                                                                                                          26    public const SQL_REPLACE = 'REPLACE';
                                                                                                                                                                                                                                                                                                          27
                                                                                                                                                                                                                                                                                                          28    public function showColumnsLike(string $table, string $column): string;
                                                                                                                                                                                                                                                                                                          29
                                                                                                                                                                                                                                                                                                          30    public function showKeys(string $table): string;
                                                                                                                                                                                                                                                                                                          31
                                                                                                                                                                                                                                                                                                          32    /**
                                                                                                                                                                                                                                                                                                          33     * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data
                                                                                                                                                                                                                                                                                                          34     * @psalm-return string
                                                                                                                                                                                                                                                                                                          35     */
                                                                                                                                                                                                                                                                                                          36    public function insertOne(array $data, string $table, string $type): string;
                                                                                                                                                                                                                                                                                                          37
                                                                                                                                                                                                                                                                                                          38    /**
                                                                                                                                                                                                                                                                                                          39     * @param array  $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']]
                                                                                                                                                                                                                                                                                                          40     * @param array  $where          ['col2' => 'value2', 'col3' => ['v3', 'v4']]
                                                                                                                                                                                                                                                                                                          41     * @param string $table          'mytable'
                                                                                                                                                                                                                                                                                                          42     */
                                                                                                                                                                                                                                                                                                          43    public function buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string;
                                                                                                                                                                                                                                                                                                          44
                                                                                                                                                                                                                                                                                                          45    /**
                                                                                                                                                                                                                                                                                                          46     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          47     * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update
                                                                                                                                                                                                                                                                                                          48     */
                                                                                                                                                                                                                                                                                                          49    public function buildUpdateWhere(
                                                                                                                                                                                                                                                                                                          50        array $update,
                                                                                                                                                                                                                                                                                                          51        array $whereFields,
                                                                                                                                                                                                                                                                                                          52        string $table,
                                                                                                                                                                                                                                                                                                          53        array $whereNotFields = [],
                                                                                                                                                                                                                                                                                                          54    ): ?string;
                                                                                                                                                                                                                                                                                                          55
                                                                                                                                                                                                                                                                                                          56    public function buildDeleteWhere(string $table, array $fields = [], array $negativeFields = []): ?string;
                                                                                                                                                                                                                                                                                                          57
                                                                                                                                                                                                                                                                                                          58    /**
                                                                                                                                                                                                                                                                                                          59     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          60     */
                                                                                                                                                                                                                                                                                                          61    public function buildWhere(array $fields, array $negativeFields = [], array $likeFields = []): string;
                                                                                                                                                                                                                                                                                                          62
                                                                                                                                                                                                                                                                                                          63    /**
                                                                                                                                                                                                                                                                                                          64     * @param array<string> $cols
                                                                                                                                                                                                                                                                                                          65     */
                                                                                                                                                                                                                                                                                                          66    public function buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string;
                                                                                                                                                                                                                                                                                                          67
                                                                                                                                                                                                                                                                                                          68    /**
                                                                                                                                                                                                                                                                                                          69     * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped
                                                                                                                                                                                                                                                                                                          70     * @throws \sql\MydbException\QueryBuilderException
                                                                                                                                                                                                                                                                                                          71     */
                                                                                                                                                                                                                                                                                                          72    public function escape($unescaped, string $quote = "'"): string;
                                                                                                                                                                                                                                                                                                          73}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbRegistry.php.html b/php/phpunit/html/MydbRegistry.php.html new file mode 100644 index 00000000000..03adc1136da --- /dev/null +++ b/php/phpunit/html/MydbRegistry.php.html @@ -0,0 +1,667 @@ + + + + + Code Coverage for /app/src/sql/MydbRegistry.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbRegistry
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          28 / 28
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          15 / 15
                                                                                                                                                                                                                                                                                                          21
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           serialize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           unserialize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           current
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           key
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           next
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           rewind
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           valid
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           count
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           offsetExists
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           offsetGet
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           offsetSet
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          4 / 4
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          3
                                                                                                                                                                                                                                                                                                           offsetUnset
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          3 / 3
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                           __clone
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           __serialize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           __unserialize
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18use ArrayAccess;
                                                                                                                                                                                                                                                                                                          19use Countable;
                                                                                                                                                                                                                                                                                                          20use Iterator;
                                                                                                                                                                                                                                                                                                          21use Serializable;
                                                                                                                                                                                                                                                                                                          22use sql\MydbException\RegistryException;
                                                                                                                                                                                                                                                                                                          23use Traversable;
                                                                                                                                                                                                                                                                                                          24use function count;
                                                                                                                                                                                                                                                                                                          25use function current;
                                                                                                                                                                                                                                                                                                          26use function key;
                                                                                                                                                                                                                                                                                                          27use function next;
                                                                                                                                                                                                                                                                                                          28use function reset;
                                                                                                                                                                                                                                                                                                          29use function serialize;
                                                                                                                                                                                                                                                                                                          30
                                                                                                                                                                                                                                                                                                          31/**
                                                                                                                                                                                                                                                                                                          32 * Singleton or registry helper to manage multiple Mydb instances
                                                                                                                                                                                                                                                                                                          33 *
                                                                                                                                                                                                                                                                                                          34 * @author Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          35 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          36 * @see https://github.com/sshilko/php-sql-mydb
                                                                                                                                                                                                                                                                                                          37 *
                                                                                                                                                                                                                                                                                                          38 * @psalm-suppress MissingTemplateParam
                                                                                                                                                                                                                                                                                                          39 */
                                                                                                                                                                                                                                                                                                          40class MydbRegistry implements ArrayAccess, Countable, Traversable, Iterator, Serializable
                                                                                                                                                                                                                                                                                                          41{
                                                                                                                                                                                                                                                                                                          42
                                                                                                                                                                                                                                                                                                          43    /**
                                                                                                                                                                                                                                                                                                          44     * @var array<string, \sql\MydbInterface>
                                                                                                                                                                                                                                                                                                          45     */
                                                                                                                                                                                                                                                                                                          46    protected array $instance = [];
                                                                                                                                                                                                                                                                                                          47
                                                                                                                                                                                                                                                                                                          48    /**
                                                                                                                                                                                                                                                                                                          49     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          50     */
                                                                                                                                                                                                                                                                                                          51    public function serialize(): ?string
                                                                                                                                                                                                                                                                                                          52    {
                                                                                                                                                                                                                                                                                                          53        throw new RegistryException();
                                                                                                                                                                                                                                                                                                          54    }
                                                                                                                                                                                                                                                                                                          55
                                                                                                                                                                                                                                                                                                          56    /**
                                                                                                                                                                                                                                                                                                          57     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          58     * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter
                                                                                                                                                                                                                                                                                                          59     */
                                                                                                                                                                                                                                                                                                          60    public function unserialize($data): void
                                                                                                                                                                                                                                                                                                          61    {
                                                                                                                                                                                                                                                                                                          62        throw new RegistryException(serialize($data));
                                                                                                                                                                                                                                                                                                          63    }
                                                                                                                                                                                                                                                                                                          64
                                                                                                                                                                                                                                                                                                          65    /**
                                                                                                                                                                                                                                                                                                          66     * Return the current element
                                                                                                                                                                                                                                                                                                          67     */
                                                                                                                                                                                                                                                                                                          68    public function current(): ?MydbInterface
                                                                                                                                                                                                                                                                                                          69    {
                                                                                                                                                                                                                                                                                                          70        $result = current($this->instance);
                                                                                                                                                                                                                                                                                                          71        if (false === $result) {
                                                                                                                                                                                                                                                                                                          72            return null;
                                                                                                                                                                                                                                                                                                          73        }
                                                                                                                                                                                                                                                                                                          74
                                                                                                                                                                                                                                                                                                          75        return $result;
                                                                                                                                                                                                                                                                                                          76    }
                                                                                                                                                                                                                                                                                                          77
                                                                                                                                                                                                                                                                                                          78    /**
                                                                                                                                                                                                                                                                                                          79     * Return the key of the current element
                                                                                                                                                                                                                                                                                                          80     */
                                                                                                                                                                                                                                                                                                          81    public function key(): ?string
                                                                                                                                                                                                                                                                                                          82    {
                                                                                                                                                                                                                                                                                                          83        $result = key($this->instance);
                                                                                                                                                                                                                                                                                                          84        if (null === $result) {
                                                                                                                                                                                                                                                                                                          85            return null;
                                                                                                                                                                                                                                                                                                          86        }
                                                                                                                                                                                                                                                                                                          87
                                                                                                                                                                                                                                                                                                          88        return $result;
                                                                                                                                                                                                                                                                                                          89    }
                                                                                                                                                                                                                                                                                                          90
                                                                                                                                                                                                                                                                                                          91    /**
                                                                                                                                                                                                                                                                                                          92     * Move forward to next element
                                                                                                                                                                                                                                                                                                          93     */
                                                                                                                                                                                                                                                                                                          94    public function next(): void
                                                                                                                                                                                                                                                                                                          95    {
                                                                                                                                                                                                                                                                                                          96        next($this->instance);
                                                                                                                                                                                                                                                                                                          97    }
                                                                                                                                                                                                                                                                                                          98
                                                                                                                                                                                                                                                                                                          99    /**
                                                                                                                                                                                                                                                                                                          100     * Rewind the Iterator to the first element
                                                                                                                                                                                                                                                                                                          101     */
                                                                                                                                                                                                                                                                                                          102    public function rewind(): void
                                                                                                                                                                                                                                                                                                          103    {
                                                                                                                                                                                                                                                                                                          104        reset($this->instance);
                                                                                                                                                                                                                                                                                                          105    }
                                                                                                                                                                                                                                                                                                          106
                                                                                                                                                                                                                                                                                                          107    /**
                                                                                                                                                                                                                                                                                                          108     * Checks if current position is valid
                                                                                                                                                                                                                                                                                                          109     * @return bool The return value will be boolean and then evaluated.
                                                                                                                                                                                                                                                                                                          110     * Returns true on success or false on failure.
                                                                                                                                                                                                                                                                                                          111     */
                                                                                                                                                                                                                                                                                                          112    public function valid(): bool
                                                                                                                                                                                                                                                                                                          113    {
                                                                                                                                                                                                                                                                                                          114        return false !== current($this->instance);
                                                                                                                                                                                                                                                                                                          115    }
                                                                                                                                                                                                                                                                                                          116
                                                                                                                                                                                                                                                                                                          117    public function count(): int
                                                                                                                                                                                                                                                                                                          118    {
                                                                                                                                                                                                                                                                                                          119        return count($this->instance);
                                                                                                                                                                                                                                                                                                          120    }
                                                                                                                                                                                                                                                                                                          121
                                                                                                                                                                                                                                                                                                          122    /**
                                                                                                                                                                                                                                                                                                          123     * Whether an offset exists
                                                                                                                                                                                                                                                                                                          124     *
                                                                                                                                                                                                                                                                                                          125     * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint
                                                                                                                                                                                                                                                                                                          126     * @param string $offset
                                                                                                                                                                                                                                                                                                          127     * @return bool true on success or false on failure.
                                                                                                                                                                                                                                                                                                          128     */
                                                                                                                                                                                                                                                                                                          129    public function offsetExists($offset): bool
                                                                                                                                                                                                                                                                                                          130    {
                                                                                                                                                                                                                                                                                                          131        return isset($this->instance[$offset]);
                                                                                                                                                                                                                                                                                                          132    }
                                                                                                                                                                                                                                                                                                          133
                                                                                                                                                                                                                                                                                                          134    /**
                                                                                                                                                                                                                                                                                                          135     * Offset to retrieve
                                                                                                                                                                                                                                                                                                          136     *
                                                                                                                                                                                                                                                                                                          137     * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint
                                                                                                                                                                                                                                                                                                          138     * @param string $offset
                                                                                                                                                                                                                                                                                                          139     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          140     */
                                                                                                                                                                                                                                                                                                          141    public function offsetGet($offset): MydbInterface
                                                                                                                                                                                                                                                                                                          142    {
                                                                                                                                                                                                                                                                                                          143        if ($this->offsetExists($offset)) {
                                                                                                                                                                                                                                                                                                          144            return $this->instance[$offset];
                                                                                                                                                                                                                                                                                                          145        }
                                                                                                                                                                                                                                                                                                          146
                                                                                                                                                                                                                                                                                                          147        throw new RegistryException();
                                                                                                                                                                                                                                                                                                          148    }
                                                                                                                                                                                                                                                                                                          149
                                                                                                                                                                                                                                                                                                          150    /**
                                                                                                                                                                                                                                                                                                          151     * Offset to set
                                                                                                                                                                                                                                                                                                          152     *
                                                                                                                                                                                                                                                                                                          153     * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint
                                                                                                                                                                                                                                                                                                          154     * @param string $offset
                                                                                                                                                                                                                                                                                                          155     * @param \sql\MydbInterface $value
                                                                                                                                                                                                                                                                                                          156     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          157     */
                                                                                                                                                                                                                                                                                                          158    public function offsetSet($offset, $value): void
                                                                                                                                                                                                                                                                                                          159    {
                                                                                                                                                                                                                                                                                                          160        if ($value instanceof MydbInterface && !$this->offsetExists($offset)) {
                                                                                                                                                                                                                                                                                                          161            $this->instance[$offset] = $value;
                                                                                                                                                                                                                                                                                                          162
                                                                                                                                                                                                                                                                                                          163            return;
                                                                                                                                                                                                                                                                                                          164        }
                                                                                                                                                                                                                                                                                                          165
                                                                                                                                                                                                                                                                                                          166        throw new RegistryException();
                                                                                                                                                                                                                                                                                                          167    }
                                                                                                                                                                                                                                                                                                          168
                                                                                                                                                                                                                                                                                                          169    /**
                                                                                                                                                                                                                                                                                                          170     * Offset to unset
                                                                                                                                                                                                                                                                                                          171     *
                                                                                                                                                                                                                                                                                                          172     * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint
                                                                                                                                                                                                                                                                                                          173     * @param string $offset
                                                                                                                                                                                                                                                                                                          174     */
                                                                                                                                                                                                                                                                                                          175    public function offsetUnset($offset): void
                                                                                                                                                                                                                                                                                                          176    {
                                                                                                                                                                                                                                                                                                          177        if (!$this->offsetExists($offset)) {
                                                                                                                                                                                                                                                                                                          178            return;
                                                                                                                                                                                                                                                                                                          179        }
                                                                                                                                                                                                                                                                                                          180
                                                                                                                                                                                                                                                                                                          181        unset($this->instance[$offset]);
                                                                                                                                                                                                                                                                                                          182    }
                                                                                                                                                                                                                                                                                                          183
                                                                                                                                                                                                                                                                                                          184    /**
                                                                                                                                                                                                                                                                                                          185     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          186     */
                                                                                                                                                                                                                                                                                                          187    public function __clone()
                                                                                                                                                                                                                                                                                                          188    {
                                                                                                                                                                                                                                                                                                          189        throw new RegistryException();
                                                                                                                                                                                                                                                                                                          190    }
                                                                                                                                                                                                                                                                                                          191
                                                                                                                                                                                                                                                                                                          192    /**
                                                                                                                                                                                                                                                                                                          193     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          194     */
                                                                                                                                                                                                                                                                                                          195    public function __serialize(): array
                                                                                                                                                                                                                                                                                                          196    {
                                                                                                                                                                                                                                                                                                          197        throw new RegistryException();
                                                                                                                                                                                                                                                                                                          198    }
                                                                                                                                                                                                                                                                                                          199
                                                                                                                                                                                                                                                                                                          200    /**
                                                                                                                                                                                                                                                                                                          201     * @throws \sql\MydbException\RegistryException
                                                                                                                                                                                                                                                                                                          202     */
                                                                                                                                                                                                                                                                                                          203    public function __unserialize(array $data): void
                                                                                                                                                                                                                                                                                                          204    {
                                                                                                                                                                                                                                                                                                          205        throw new RegistryException(serialize($data));
                                                                                                                                                                                                                                                                                                          206    }
                                                                                                                                                                                                                                                                                                          207}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbRepository.php.html b/php/phpunit/html/MydbRepository.php.html new file mode 100644 index 00000000000..4134293c966 --- /dev/null +++ b/php/phpunit/html/MydbRepository.php.html @@ -0,0 +1,217 @@ + + + + + Code Coverage for /app/src/sql/MydbRepository.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          MydbRepository
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          2 / 2
                                                                                                                                                                                                                                                                                                          2
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                           getDatabaseIdentifier
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          0
                                                                                                                                                                                                                                                                                                           __construct
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                           getDatabase
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + 100.00% covered (success) +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          100.00%
                                                                                                                                                                                                                                                                                                          1 / 1
                                                                                                                                                                                                                                                                                                          1
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18abstract class MydbRepository implements MydbRepositoryInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20
                                                                                                                                                                                                                                                                                                          21    abstract public function getDatabaseIdentifier(): string;
                                                                                                                                                                                                                                                                                                          22
                                                                                                                                                                                                                                                                                                          23    public function __construct(private MydbRegistry $registry)
                                                                                                                                                                                                                                                                                                          24    {
                                                                                                                                                                                                                                                                                                          25    }
                                                                                                                                                                                                                                                                                                          26
                                                                                                                                                                                                                                                                                                          27    public function getDatabase(): MydbInterface
                                                                                                                                                                                                                                                                                                          28    {
                                                                                                                                                                                                                                                                                                          29        return $this->registry[$this->getDatabaseIdentifier()];
                                                                                                                                                                                                                                                                                                          30    }
                                                                                                                                                                                                                                                                                                          31}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/MydbRepositoryInterface.php.html b/php/phpunit/html/MydbRepositoryInterface.php.html new file mode 100644 index 00000000000..f8a3425b056 --- /dev/null +++ b/php/phpunit/html/MydbRepositoryInterface.php.html @@ -0,0 +1,107 @@ + + + + + Code Coverage for /app/src/sql/MydbRepositoryInterface.php + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Code Coverage
                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                          Lines
                                                                                                                                                                                                                                                                                                          Functions and Methods
                                                                                                                                                                                                                                                                                                          Classes and Traits
                                                                                                                                                                                                                                                                                                          Total
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          CRAP
                                                                                                                                                                                                                                                                                                          n/a
                                                                                                                                                                                                                                                                                                          0 / 0
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          1<?php
                                                                                                                                                                                                                                                                                                          2/**
                                                                                                                                                                                                                                                                                                          3 * This file is part of the sshilko/php-sql-mydb package.
                                                                                                                                                                                                                                                                                                          4 *
                                                                                                                                                                                                                                                                                                          5 * (c) Sergei Shilko <contact@sshilko.com>
                                                                                                                                                                                                                                                                                                          6 *
                                                                                                                                                                                                                                                                                                          7 * MIT License
                                                                                                                                                                                                                                                                                                          8 *
                                                                                                                                                                                                                                                                                                          9 * For the full copyright and license information, please view the LICENSE
                                                                                                                                                                                                                                                                                                          10 * file that was distributed with this source code.
                                                                                                                                                                                                                                                                                                          11 * @license https://opensource.org/licenses/mit-license.php MIT
                                                                                                                                                                                                                                                                                                          12 */
                                                                                                                                                                                                                                                                                                          13
                                                                                                                                                                                                                                                                                                          14declare(strict_types = 1);
                                                                                                                                                                                                                                                                                                          15
                                                                                                                                                                                                                                                                                                          16namespace sql;
                                                                                                                                                                                                                                                                                                          17
                                                                                                                                                                                                                                                                                                          18interface MydbRepositoryInterface
                                                                                                                                                                                                                                                                                                          19{
                                                                                                                                                                                                                                                                                                          20    public function getDatabase(): MydbInterface;
                                                                                                                                                                                                                                                                                                          21}
                                                                                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Legend

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          + Generated by php-code-coverage 9.2.30 using PHP 8.1.27 and PHPUnit 9.6.15 at Wed Jan 3 0:24:04 UTC 2024. +

                                                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/_css/bootstrap.min.css b/php/phpunit/html/_css/bootstrap.min.css new file mode 100644 index 00000000000..83a71b1f507 --- /dev/null +++ b/php/phpunit/html/_css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:.875em;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentcolor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/php/phpunit/html/_css/custom.css b/php/phpunit/html/_css/custom.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/php/phpunit/html/_css/index.html b/php/phpunit/html/_css/index.html new file mode 100644 index 00000000000..92609f2d24c --- /dev/null +++ b/php/phpunit/html/_css/index.html @@ -0,0 +1,86 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/_css

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          bootstrap.min.css

                                                                                                                                                                                                                                                                                                          bootstrap.min.css +
                                                                                                                                                                                                                                                                                                          162 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          custom.css

                                                                                                                                                                                                                                                                                                          custom.css +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          nv.d3.min.css

                                                                                                                                                                                                                                                                                                          nv.d3.min.css +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          octicons.css

                                                                                                                                                                                                                                                                                                          octicons.css +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          style.css

                                                                                                                                                                                                                                                                                                          style.css +
                                                                                                                                                                                                                                                                                                          2 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/_css/nv.d3.min.css b/php/phpunit/html/_css/nv.d3.min.css new file mode 100644 index 00000000000..7a6f7fe90c6 --- /dev/null +++ b/php/phpunit/html/_css/nv.d3.min.css @@ -0,0 +1 @@ +.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} \ No newline at end of file diff --git a/php/phpunit/html/_css/octicons.css b/php/phpunit/html/_css/octicons.css new file mode 100644 index 00000000000..31d97867a12 --- /dev/null +++ b/php/phpunit/html/_css/octicons.css @@ -0,0 +1,5 @@ +.octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} diff --git a/php/phpunit/html/_css/style.css b/php/phpunit/html/_css/style.css new file mode 100644 index 00000000000..2edd609706b --- /dev/null +++ b/php/phpunit/html/_css/style.css @@ -0,0 +1,158 @@ +body { + font-family: sans-serif; + font-size: 1em; + font-kerning: normal; + font-variant-ligatures: common-ligatures; + text-rendering: optimizeLegibility; + padding-top: 10px; +} + +.popover { + max-width: none; +} + +.octicon { + margin-right:.25em; + vertical-align: baseline; + width: 0.75em; +} + +.table-bordered>thead>tr>td { + border-bottom-width: 1px; +} + +.table tbody>tr>td, .table thead>tr>td { + padding-top: 3px; + padding-bottom: 3px; +} + +.table-condensed tbody>tr>td { + padding-top: 0; + padding-bottom: 0; +} + +.table .progress { + margin-bottom: inherit; +} + +.table-borderless th, .table-borderless td { + border: 0 !important; +} + +.table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { + background-color: #dff0d8; +} + +.table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { + background-color: #c3e3b5; +} + +.table tbody tr.covered-by-small-tests, li.covered-by-small-tests { + background-color: #99cb84; +} + +.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { + background-color: #f2dede; +} + +.table tbody tr.warning, .table tbody td.warning, li.warning, span.warning { + background-color: #fcf8e3; +} + +.table tbody td.info { + background-color: #d9edf7; +} + +td.big { + vertical-align: middle; + width: 117px; +} + +td.small { +} + +td.codeLine { + font-family: "Source Code Pro", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + white-space: pre-wrap; +} + +td span.comment { + color: #888a85; +} + +td span.default { + color: #2e3436; +} + +td span.html { + color: #888a85; +} + +td span.keyword { + color: #2e3436; + font-weight: bold; +} + +pre span.string { + color: #2e3436; +} + +span.success, span.warning, span.danger { + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + text-align: center; +} + +#toplink { + position: fixed; + left: 5px; + bottom: 5px; + outline: 0; +} + +svg text { + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + fill: #666; +} + +.scrollbox { + height:245px; + overflow-x:scroll; + overflow-y:scroll; +} + +table + .structure-heading { + border-top: 1px solid lightgrey; + padding-top: 0.5em; +} + +.legend { + font-weight: bold; + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + text-align: center; +} + +.covered-by-small-tests { + background-color: #99cb84; +} + +.covered-by-medium-tests { + background-color: #c3e3b5; +} + +.covered-by-large-tests { + background-color: #dff0d8; +} + +.not-covered { + background-color: #f2dede; +} + +.not-coverable { + background-color: #fcf8e3; +} diff --git a/php/phpunit/html/_icons/file-code.svg b/php/phpunit/html/_icons/file-code.svg new file mode 100644 index 00000000000..5b4b199531b --- /dev/null +++ b/php/phpunit/html/_icons/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/php/phpunit/html/_icons/file-directory.svg b/php/phpunit/html/_icons/file-directory.svg new file mode 100644 index 00000000000..4bf1f1caa89 --- /dev/null +++ b/php/phpunit/html/_icons/file-directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/php/phpunit/html/_icons/index.html b/php/phpunit/html/_icons/index.html new file mode 100644 index 00000000000..9b9513fcba9 --- /dev/null +++ b/php/phpunit/html/_icons/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/_icons

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          file-code.svg

                                                                                                                                                                                                                                                                                                          file-code.svg +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          file-directory.svg

                                                                                                                                                                                                                                                                                                          file-directory.svg +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/_js/bootstrap.min.js b/php/phpunit/html/_js/bootstrap.min.js new file mode 100644 index 00000000000..97206dcda4f --- /dev/null +++ b/php/phpunit/html/_js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=function(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this},o.default.event.special[d.TRANSITION_END]={bindType:f,delegateType:f,handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="bs.alert",h=o.default.fn.alert,g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(c);i||(i=new t(this),n.data(c,i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',g._handleDismiss(new g)),o.default.fn.alert=g._jQueryInterface,o.default.fn.alert.Constructor=g,o.default.fn.alert.noConflict=function(){return o.default.fn.alert=h,g._jQueryInterface};var m="bs.button",p=o.default.fn.button,_="active",v='[data-toggle^="button"]',y='input:not([type="hidden"])',b=".btn",E=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector(y);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(_))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass(_)}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains(_)),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(_)),t&&o.default(this._element).toggleClass(_))},e.dispose=function(){o.default.removeData(this._element,m),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data(m);a||(a=new t(this),i.data(m,a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),t}();o.default(document).on("click.bs.button.data-api",v,(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(b)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||E._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",v,(function(t){var e=o.default(t.target).closest(b)[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(N)},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(D)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(I);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one(A,(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?N:D;this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(".bs.carousel"),o.default.removeData(this._element,w),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},k,t),d.typeCheckConfig(T,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===N,i=t===D,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+(t===D?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(I)),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass(S);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass(S)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(I);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(I),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if(t===N?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass(S))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var h=o.default.Event(A,{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass(S),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(g)}else o.default(l).removeClass(S),o.default(u).addClass(S),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(w),i=r({},k,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data(w,n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data(w).to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return k}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",P._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass(q)?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!(this._isTransitioning||o.default(this._element).hasClass(q)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(F)}))).length&&(e=null),e&&(n=o.default(e).not(this._selector).data(R))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data(R,null));var s=this._getDimension();o.default(this._element).removeClass(F).addClass(Q),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass(B).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass(Q).addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass(q)){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass(Q).removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(K);if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data(K,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll(it)),i=0,a=n.length;i0&&s--,40===e.which&&sdocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ht);var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove(ht),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass(dt),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off(pt).on(pt,(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on(yt,(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off(yt)},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on(_t,(function(e){return t.handleUpdate(e)})):o.default(window).off(_t)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass(ft),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger(gt)}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass(dt)?dt:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on(vt,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass(ct),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass(ct);var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass(dt)){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
                                                                                                                                                                                                                                                                                                          ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ut={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Wt=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass(Rt))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass(Lt);var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass(Rt),o.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),e===qt&&t._leave(null,t)};if(o.default(this.tip).hasClass(Lt)){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){e._hoverState!==xt&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass(Rt),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass(Lt)){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=At(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Qt:Ft]=!0),o.default(e.getTipElement()).hasClass(Rt)||e._hoverState===xt?e._hoverState=xt:(clearTimeout(e._timeout),e._hoverState=xt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===xt&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=qt,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===qt&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Pt.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(It,t,this.constructor.DefaultType),t.sanitize&&(t.template=At(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(jt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass(Lt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(kt),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data(kt,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return It}},{key:"DATA_KEY",get:function(){return kt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ut}}]),t}();o.default.fn.tooltip=Wt._jQueryInterface,o.default.fn.tooltip.Constructor=Wt,o.default.fn.tooltip.noConflict=function(){return o.default.fn.tooltip=Ot,Wt._jQueryInterface};var Vt="bs.popover",zt=o.default.fn.popover,Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=r({},Wt.Default,{placement:"right",trigger:"click",content:"",template:''}),Yt=r({},Wt.DefaultType,{content:"(string|element|function)"}),$t={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Jt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,u(e,n);var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(Kt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data(Vt),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data(Vt,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return Vt}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),i}(Wt);o.default.fn.popover=Jt._jQueryInterface,o.default.fn.popover.Constructor=Jt,o.default.fn.popover.noConflict=function(){return o.default.fn.popover=zt,Jt._jQueryInterface};var Gt="scrollspy",Zt="bs.scrollspy",te=o.default.fn[Gt],ee="active",ne="position",ie=".nav, .list-group",oe={offset:10,method:"auto",target:""},ae={offset:"number",method:"string",target:"(string|element)"},se=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ne,n="auto"===this._config.method?e:this._config.method,i=n===ne?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter(Boolean).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,Zt),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},oe,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(Gt),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(Gt,t,ae),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active",ge=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass(ue)||o.default(this._element).hasClass("disabled")||this._element.hasAttribute("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?he:ce;n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,le),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(ce):o.default(e).find(he))[0],s=n&&a&&o.default(a).hasClass(fe),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass(de).one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass(ue);var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass(ue),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}o.default(t).addClass(ue),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains(fe)&&t.classList.add(de);var a=t.parentNode;if(a&&"LI"===a.nodeName&&(a=a.parentNode),a&&o.default(a).hasClass("dropdown-menu")){var s=o.default(t).closest(".dropdown")[0];if(s){var l=[].slice.call(s.querySelectorAll(".dropdown-toggle"));o.default(l).addClass(ue)}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(le);if(i||(i=new t(this),n.data(le,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ge._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ge._jQueryInterface,o.default.fn.tab.Constructor=ge,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=re,ge._jQueryInterface};var me="bs.toast",pe=o.default.fn.toast,_e="hide",ve="show",ye="showing",be="click.dismiss.bs.toast",Ee={animation:!0,autohide:!0,delay:500},Te={animation:"boolean",autohide:"boolean",delay:"number"},we=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove(ye),t._element.classList.add(ve),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove(_e),d.reflow(this._element),this._element.classList.add(ye),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(ve)){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains(ve)&&this._element.classList.remove(ve),o.default(this._element).off(be),o.default.removeData(this._element,me),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ee,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on(be,'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add(_e),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ve),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(me);if(i||(i=new t(this,"object"==typeof e&&e),n.data(me,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"DefaultType",get:function(){return Te}},{key:"Default",get:function(){return Ee}}]),t}();o.default.fn.toast=we._jQueryInterface,o.default.fn.toast.Constructor=we,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=pe,we._jQueryInterface},t.Alert=g,t.Button=E,t.Carousel=P,t.Collapse=V,t.Dropdown=lt,t.Modal=Ct,t.Popover=Jt,t.Scrollspy=se,t.Tab=ge,t.Toast=we,t.Tooltip=Wt,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/php/phpunit/html/_js/d3.min.js b/php/phpunit/html/_js/d3.min.js new file mode 100644 index 00000000000..166487309a7 --- /dev/null +++ b/php/phpunit/html/_js/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/php/phpunit/html/_js/file.js b/php/phpunit/html/_js/file.js new file mode 100644 index 00000000000..29cacd4d1d1 --- /dev/null +++ b/php/phpunit/html/_js/file.js @@ -0,0 +1,62 @@ + $(function() { + var $window = $(window) + , $top_link = $('#toplink') + , $body = $('body, html') + , offset = $('#code').offset().top + , hidePopover = function ($target) { + $target.data('popover-hover', false); + + setTimeout(function () { + if (!$target.data('popover-hover')) { + $target.popover('hide'); + } + }, 300); + }; + + $top_link.hide().click(function(event) { + event.preventDefault(); + $body.animate({scrollTop:0}, 800); + }); + + $window.scroll(function() { + if($window.scrollTop() > offset) { + $top_link.fadeIn(); + } else { + $top_link.fadeOut(); + } + }).scroll(); + + $('.popin') + .popover({trigger: 'manual'}) + .on({ + 'mouseenter.popover': function () { + var $target = $(this); + var $container = $target.children().first(); + + $target.data('popover-hover', true); + + // popover already displayed + if ($target.next('.popover').length) { + return; + } + + // show the popover + $container.popover('show'); + + // register mouse events on the popover + $target.next('.popover:not(.popover-initialized)') + .on({ + 'mouseenter': function () { + $target.data('popover-hover', true); + }, + 'mouseleave': function () { + hidePopover($container); + } + }) + .addClass('popover-initialized'); + }, + 'mouseleave.popover': function () { + hidePopover($(this).children().first()); + } + }); + }); diff --git a/php/phpunit/html/_js/index.html b/php/phpunit/html/_js/index.html new file mode 100644 index 00000000000..4e7ff771e7a --- /dev/null +++ b/php/phpunit/html/_js/index.html @@ -0,0 +1,94 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html/_js

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          bootstrap.min.js

                                                                                                                                                                                                                                                                                                          bootstrap.min.js +
                                                                                                                                                                                                                                                                                                          62 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          d3.min.js

                                                                                                                                                                                                                                                                                                          d3.min.js +
                                                                                                                                                                                                                                                                                                          151 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          file.js

                                                                                                                                                                                                                                                                                                          file.js +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          jquery.min.js

                                                                                                                                                                                                                                                                                                          jquery.min.js +
                                                                                                                                                                                                                                                                                                          89 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          nv.d3.min.js

                                                                                                                                                                                                                                                                                                          nv.d3.min.js +
                                                                                                                                                                                                                                                                                                          217 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          popper.min.js

                                                                                                                                                                                                                                                                                                          popper.min.js +
                                                                                                                                                                                                                                                                                                          21 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/html/_js/jquery.min.js b/php/phpunit/html/_js/jquery.min.js new file mode 100644 index 00000000000..2c69bc908b1 --- /dev/null +++ b/php/phpunit/html/_js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
                                                                                                                                                                                                                                                                                                          "],col:[2,"","
                                                                                                                                                                                                                                                                                                          "],tr:[2,"","
                                                                                                                                                                                                                                                                                                          "],td:[3,"","
                                                                                                                                                                                                                                                                                                          "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
                                                                                                                                                                                                                                                                                                          ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0f&&(e=a.render.queue[f]);f++)d=e.generate(),typeof e.callback==typeof Function&&e.callback(d);a.render.queue.splice(0,f),a.render.queue.length?setTimeout(c):(a.dispatch.render_end(),a.render.active=!1)};setTimeout(c)},a.render.active=!1,a.render.queue=[],a.addGraph=function(b){typeof arguments[0]==typeof Function&&(b={generate:arguments[0],callback:arguments[1]}),a.render.queue.push(b),a.render.active||a.render()},"undefined"!=typeof module&&"undefined"!=typeof exports&&(module.exports=a),"undefined"!=typeof window&&(window.nv=a),a.dom.write=function(a){return void 0!==window.fastdom?fastdom.write(a):a()},a.dom.read=function(a){return void 0!==window.fastdom?fastdom.read(a):a()},a.interactiveGuideline=function(){"use strict";function b(l){l.each(function(l){function m(){var a=d3.mouse(this),d=a[0],e=a[1],i=!0,j=!1;if(k&&(d=d3.event.offsetX,e=d3.event.offsetY,"svg"!==d3.event.target.tagName&&(i=!1),d3.event.target.className.baseVal.match("nv-legend")&&(j=!0)),i&&(d-=f.left,e-=f.top),0>d||0>e||d>o||e>p||d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement||j){if(k&&d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement&&(void 0===d3.event.relatedTarget.className||d3.event.relatedTarget.className.match(c.nvPointerEventsClass)))return;return h.elementMouseout({mouseX:d,mouseY:e}),b.renderGuideLine(null),void c.hidden(!0)}c.hidden(!1);var l=g.invert(d);h.elementMousemove({mouseX:d,mouseY:e,pointXValue:l}),"dblclick"===d3.event.type&&h.elementDblclick({mouseX:d,mouseY:e,pointXValue:l}),"click"===d3.event.type&&h.elementClick({mouseX:d,mouseY:e,pointXValue:l})}var n=d3.select(this),o=d||960,p=e||400,q=n.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([l]),r=q.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");r.append("g").attr("class","nv-interactiveGuideLine"),j&&(j.on("touchmove",m).on("mousemove",m,!0).on("mouseout",m,!0).on("dblclick",m).on("click",m),b.guideLine=null,b.renderGuideLine=function(c){i&&(b.guideLine&&b.guideLine.attr("x1")===c||a.dom.write(function(){var b=q.select(".nv-interactiveGuideLine").selectAll("line").data(null!=c?[a.utils.NaNtoZero(c)]:[],String);b.enter().append("line").attr("class","nv-guideline").attr("x1",function(a){return a}).attr("x2",function(a){return a}).attr("y1",p).attr("y2",0),b.exit().remove()}))})})}var c=a.models.tooltip();c.duration(0).hideDelay(0)._isInteractiveLayer(!0).hidden(!1);var d=null,e=null,f={left:0,top:0},g=d3.scale.linear(),h=d3.dispatch("elementMousemove","elementMouseout","elementClick","elementDblclick"),i=!0,j=null,k="ActiveXObject"in window;return b.dispatch=h,b.tooltip=c,b.margin=function(a){return arguments.length?(f.top="undefined"!=typeof a.top?a.top:f.top,f.left="undefined"!=typeof a.left?a.left:f.left,b):f},b.width=function(a){return arguments.length?(d=a,b):d},b.height=function(a){return arguments.length?(e=a,b):e},b.xScale=function(a){return arguments.length?(g=a,b):g},b.showGuideLine=function(a){return arguments.length?(i=a,b):i},b.svgContainer=function(a){return arguments.length?(j=a,b):j},b},a.interactiveBisect=function(a,b,c){"use strict";if(!(a instanceof Array))return null;var d;d="function"!=typeof c?function(a){return a.x}:c;var e=function(a,b){return d(a)-b},f=d3.bisector(e).left,g=d3.max([0,f(a,b)-1]),h=d(a[g]);if("undefined"==typeof h&&(h=g),h===b)return g;var i=d3.min([g+1,a.length-1]),j=d(a[i]);return"undefined"==typeof j&&(j=i),Math.abs(j-b)>=Math.abs(h-b)?g:i},a.nearestValueIndex=function(a,b,c){"use strict";var d=1/0,e=null;return a.forEach(function(a,f){var g=Math.abs(b-a);null!=a&&d>=g&&c>g&&(d=g,e=f)}),e},function(){"use strict";a.models.tooltip=function(){function b(){if(k){var a=d3.select(k);"svg"!==a.node().tagName&&(a=a.select("svg"));var b=a.node()?a.attr("viewBox"):null;if(b){b=b.split(" ");var c=parseInt(a.style("width"),10)/b[2];p.left=p.left*c,p.top=p.top*c}}}function c(){if(!n){var a;a=k?k:document.body,n=d3.select(a).append("div").attr("class","nvtooltip "+(j?j:"xy-tooltip")).attr("id",v),n.style("top",0).style("left",0),n.style("opacity",0),n.selectAll("div, table, td, tr").classed(w,!0),n.classed(w,!0),o=n.node()}}function d(){if(r&&B(e)){b();var f=p.left,g=null!==i?i:p.top;return a.dom.write(function(){c();var b=A(e);b&&(o.innerHTML=b),k&&u?a.dom.read(function(){var a=k.getElementsByTagName("svg")[0],b={left:0,top:0};if(a){var c=a.getBoundingClientRect(),d=k.getBoundingClientRect(),e=c.top;if(0>e){var i=k.getBoundingClientRect();e=Math.abs(e)>i.height?0:e}b.top=Math.abs(e-d.top),b.left=Math.abs(c.left-d.left)}f+=k.offsetLeft+b.left-2*k.scrollLeft,g+=k.offsetTop+b.top-2*k.scrollTop,h&&h>0&&(g=Math.floor(g/h)*h),C([f,g])}):C([f,g])}),d}}var e=null,f="w",g=25,h=0,i=null,j=null,k=null,l=!0,m=400,n=null,o=null,p={left:null,top:null},q={left:0,top:0},r=!0,s=100,t=!0,u=!1,v="nvtooltip-"+Math.floor(1e5*Math.random()),w="nv-pointer-events-none",x=function(a){return a},y=function(a){return a},z=function(a){return a},A=function(a){if(null===a)return"";var b=d3.select(document.createElement("table"));if(t){var c=b.selectAll("thead").data([a]).enter().append("thead");c.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(y(a.value))}var d=b.selectAll("tbody").data([a]).enter().append("tbody"),e=d.selectAll("tr").data(function(a){return a.series}).enter().append("tr").classed("highlight",function(a){return a.highlight});e.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(a){return a.color}),e.append("td").classed("key",!0).html(function(a,b){return z(a.key,b)}),e.append("td").classed("value",!0).html(function(a,b){return x(a.value,b)}),e.selectAll("td").each(function(a){if(a.highlight){var b=d3.scale.linear().domain([0,1]).range(["#fff",a.color]),c=.6;d3.select(this).style("border-bottom-color",b(c)).style("border-top-color",b(c))}});var f=b.node().outerHTML;return void 0!==a.footer&&(f+=""),f},B=function(a){if(a&&a.series){if(a.series instanceof Array)return!!a.series.length;if(a.series instanceof Object)return a.series=[a.series],!0}return!1},C=function(b){o&&a.dom.read(function(){var c,d,e=parseInt(o.offsetHeight,10),h=parseInt(o.offsetWidth,10),i=a.utils.windowSize().width,j=a.utils.windowSize().height,k=window.pageYOffset,p=window.pageXOffset;j=window.innerWidth>=document.body.scrollWidth?j:j-16,i=window.innerHeight>=document.body.scrollHeight?i:i-16;var r,t,u=function(a){var b=d;do isNaN(a.offsetTop)||(b+=a.offsetTop),a=a.offsetParent;while(a);return b},v=function(a){var b=c;do isNaN(a.offsetLeft)||(b+=a.offsetLeft),a=a.offsetParent;while(a);return b};switch(f){case"e":c=b[0]-h-g,d=b[1]-e/2,r=v(o),t=u(o),p>r&&(c=b[0]+g>p?b[0]+g:p-r+c),k>t&&(d=k-t+d),t+e>k+j&&(d=k+j-t+d-e);break;case"w":c=b[0]+g,d=b[1]-e/2,r=v(o),t=u(o),r+h>i&&(c=b[0]-h-g),k>t&&(d=k+5),t+e>k+j&&(d=k+j-t+d-e);break;case"n":c=b[0]-h/2-5,d=b[1]+g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),t+e>k+j&&(d=k+j-t+d-e);break;case"s":c=b[0]-h/2,d=b[1]-e-g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),k>t&&(d=k);break;case"none":c=b[0],d=b[1]-g,r=v(o),t=u(o)}c-=q.left,d-=q.top;var w=o.getBoundingClientRect(),k=window.pageYOffset||document.documentElement.scrollTop,p=window.pageXOffset||document.documentElement.scrollLeft,x="translate("+(w.left+p)+"px, "+(w.top+k)+"px)",y="translate("+c+"px, "+d+"px)",z=d3.interpolateString(x,y),A=n.style("opacity")<.1;l?n.transition().delay(m).duration(0).style("opacity",0):n.interrupt().transition().duration(A?0:s).styleTween("transform",function(){return z},"important").style("-webkit-transform",y).style("opacity",1)})};return d.nvPointerEventsClass=w,d.options=a.utils.optionsFunc.bind(d),d._options=Object.create({},{duration:{get:function(){return s},set:function(a){s=a}},gravity:{get:function(){return f},set:function(a){f=a}},distance:{get:function(){return g},set:function(a){g=a}},snapDistance:{get:function(){return h},set:function(a){h=a}},classes:{get:function(){return j},set:function(a){j=a}},chartContainer:{get:function(){return k},set:function(a){k=a}},fixedTop:{get:function(){return i},set:function(a){i=a}},enabled:{get:function(){return r},set:function(a){r=a}},hideDelay:{get:function(){return m},set:function(a){m=a}},contentGenerator:{get:function(){return A},set:function(a){A=a}},valueFormatter:{get:function(){return x},set:function(a){x=a}},headerFormatter:{get:function(){return y},set:function(a){y=a}},keyFormatter:{get:function(){return z},set:function(a){z=a}},headerEnabled:{get:function(){return t},set:function(a){t=a}},_isInteractiveLayer:{get:function(){return u},set:function(a){u=!!a}},position:{get:function(){return p},set:function(a){p.left=void 0!==a.left?a.left:p.left,p.top=void 0!==a.top?a.top:p.top}},offset:{get:function(){return q},set:function(a){q.left=void 0!==a.left?a.left:q.left,q.top=void 0!==a.top?a.top:q.top}},hidden:{get:function(){return l},set:function(a){l!=a&&(l=!!a,d())}},data:{get:function(){return e},set:function(a){a.point&&(a.value=a.point.x,a.series=a.series||{},a.series.value=a.point.y,a.series.color=a.point.color||a.series.color),e=a}},tooltipElem:{get:function(){return o},set:function(){}},id:{get:function(){return v},set:function(){}}}),a.utils.initOptions(d),d}}(),a.utils.windowSize=function(){var a={width:640,height:480};return window.innerWidth&&window.innerHeight?(a.width=window.innerWidth,a.height=window.innerHeight,a):"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetWidth?(a.width=document.documentElement.offsetWidth,a.height=document.documentElement.offsetHeight,a):document.body&&document.body.offsetWidth?(a.width=document.body.offsetWidth,a.height=document.body.offsetHeight,a):a},a.utils.windowResize=function(b){return window.addEventListener?window.addEventListener("resize",b):a.log("ERROR: Failed to bind to window.resize with: ",b),{callback:b,clear:function(){window.removeEventListener("resize",b)}}},a.utils.getColor=function(b){if(void 0===b)return a.utils.defaultColor();if(Array.isArray(b)){var c=d3.scale.ordinal().range(b);return function(a,b){var d=void 0===b?a:b;return a.color||c(d)}}return b},a.utils.defaultColor=function(){return a.utils.getColor(d3.scale.category20().range())},a.utils.customTheme=function(a,b,c){b=b||function(a){return a.key},c=c||d3.scale.category20().range();var d=c.length;return function(e){var f=b(e);return"function"==typeof a[f]?a[f]():void 0!==a[f]?a[f]:(d||(d=c.length),d-=1,c[d])}},a.utils.pjax=function(b,c){var d=function(d){d3.html(d,function(d){var e=d3.select(c).node();e.parentNode.replaceChild(d3.select(d).select(c).node(),e),a.utils.pjax(b,c)})};d3.selectAll(b).on("click",function(){history.pushState(this.href,this.textContent,this.href),d(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&d(d3.event.state)})},a.utils.calcApproxTextWidth=function(a){if("function"==typeof a.style&&"function"==typeof a.text){var b=parseInt(a.style("font-size").replace("px",""),10),c=a.text().length;return c*b*.5}return 0},a.utils.NaNtoZero=function(a){return"number"!=typeof a||isNaN(a)||null===a||1/0===a||a===-1/0?0:a},d3.selection.prototype.watchTransition=function(a){var b=[this].concat([].slice.call(arguments,1));return a.transition.apply(a,b)},a.utils.renderWatch=function(b,c){if(!(this instanceof a.utils.renderWatch))return new a.utils.renderWatch(b,c);var d=void 0!==c?c:250,e=[],f=this;this.models=function(a){return a=[].slice.call(arguments,0),a.forEach(function(a){a.__rendered=!1,function(a){a.dispatch.on("renderEnd",function(){a.__rendered=!0,f.renderEnd("model")})}(a),e.indexOf(a)<0&&e.push(a)}),this},this.reset=function(a){void 0!==a&&(d=a),e=[]},this.transition=function(a,b,c){if(b=arguments.length>1?[].slice.call(arguments,1):[],c=b.length>1?b.pop():void 0!==d?d:250,a.__rendered=!1,e.indexOf(a)<0&&e.push(a),0===c)return a.__rendered=!0,a.delay=function(){return this},a.duration=function(){return this},a;a.__rendered=0===a.length?!0:a.every(function(a){return!a.length})?!0:!1;var g=0;return a.transition().duration(c).each(function(){++g}).each("end",function(){0===--g&&(a.__rendered=!0,f.renderEnd.apply(this,b))})},this.renderEnd=function(){e.every(function(a){return a.__rendered})&&(e.forEach(function(a){a.__rendered=!1}),b.renderEnd.apply(this,arguments))}},a.utils.deepExtend=function(b){var c=arguments.length>1?[].slice.call(arguments,1):[];c.forEach(function(c){for(var d in c){var e=b[d]instanceof Array,f="object"==typeof b[d],g="object"==typeof c[d];f&&!e&&g?a.utils.deepExtend(b[d],c[d]):b[d]=c[d]}})},a.utils.state=function(){if(!(this instanceof a.utils.state))return new a.utils.state;var b={},c=function(){},d=function(){return{}},e=null,f=null;this.dispatch=d3.dispatch("change","set"),this.dispatch.on("set",function(a){c(a,!0)}),this.getter=function(a){return d=a,this},this.setter=function(a,b){return b||(b=function(){}),c=function(c,d){a(c),d&&b()},this},this.init=function(b){e=e||{},a.utils.deepExtend(e,b)};var g=function(){var a=d();if(JSON.stringify(a)===JSON.stringify(b))return!1;for(var c in a)void 0===b[c]&&(b[c]={}),b[c]=a[c],f=!0;return!0};this.update=function(){e&&(c(e,!1),e=null),g.call(this)&&this.dispatch.change(b)}},a.utils.optionsFunc=function(a){return a&&d3.map(a).forEach(function(a,b){"function"==typeof this[a]&&this[a](b)}.bind(this)),this},a.utils.calcTicksX=function(b,c){var d=1,e=0;for(e;ed?f:d}return a.log("Requested number of ticks: ",b),a.log("Calculated max values to be: ",d),b=b>d?b=d-1:b,b=1>b?1:b,b=Math.floor(b),a.log("Calculating tick count as: ",b),b},a.utils.calcTicksY=function(b,c){return a.utils.calcTicksX(b,c)},a.utils.initOption=function(a,b){a._calls&&a._calls[b]?a[b]=a._calls[b]:(a[b]=function(c){return arguments.length?(a._overrides[b]=!0,a._options[b]=c,a):a._options[b]},a["_"+b]=function(c){return arguments.length?(a._overrides[b]||(a._options[b]=c),a):a._options[b]})},a.utils.initOptions=function(b){b._overrides=b._overrides||{};var c=Object.getOwnPropertyNames(b._options||{}),d=Object.getOwnPropertyNames(b._calls||{});c=c.concat(d);for(var e in c)a.utils.initOption(b,c[e])},a.utils.inheritOptionsD3=function(a,b,c){a._d3options=c.concat(a._d3options||[]),c.unshift(b),c.unshift(a),d3.rebind.apply(this,c)},a.utils.arrayUnique=function(a){return a.sort().filter(function(b,c){return!c||b!=a[c-1]})},a.utils.symbolMap=d3.map(),a.utils.symbol=function(){function b(b,e){var f=c.call(this,b,e),g=d.call(this,b,e);return-1!==d3.svg.symbolTypes.indexOf(f)?d3.svg.symbol().type(f).size(g)():a.utils.symbolMap.get(f)(g)}var c,d=64;return b.type=function(a){return arguments.length?(c=d3.functor(a),b):c},b.size=function(a){return arguments.length?(d=d3.functor(a),b):d},b},a.utils.inheritOptions=function(b,c){var d=Object.getOwnPropertyNames(c._options||{}),e=Object.getOwnPropertyNames(c._calls||{}),f=c._inherited||[],g=c._d3options||[],h=d.concat(e).concat(f).concat(g);h.unshift(c),h.unshift(b),d3.rebind.apply(this,h),b._inherited=a.utils.arrayUnique(d.concat(e).concat(f).concat(d).concat(b._inherited||[])),b._d3options=a.utils.arrayUnique(g.concat(b._d3options||[]))},a.utils.initSVG=function(a){a.classed({"nvd3-svg":!0})},a.utils.sanitizeHeight=function(a,b){return a||parseInt(b.style("height"),10)||400},a.utils.sanitizeWidth=function(a,b){return a||parseInt(b.style("width"),10)||960},a.utils.availableHeight=function(b,c,d){return a.utils.sanitizeHeight(b,c)-d.top-d.bottom},a.utils.availableWidth=function(b,c,d){return a.utils.sanitizeWidth(b,c)-d.left-d.right},a.utils.noData=function(b,c){var d=b.options(),e=d.margin(),f=d.noData(),g=null==f?["No Data Available."]:[f],h=a.utils.availableHeight(d.height(),c,e),i=a.utils.availableWidth(d.width(),c,e),j=e.left+i/2,k=e.top+h/2;c.selectAll("g").remove();var l=c.selectAll(".nv-noData").data(g);l.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),l.attr("x",j).attr("y",k).text(function(a){return a})},a.models.axis=function(){"use strict";function b(g){return s.reset(),g.each(function(b){var g=d3.select(this);a.utils.initSVG(g);var p=g.selectAll("g.nv-wrap.nv-axis").data([b]),q=p.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),t=(q.append("g"),p.select("g"));null!==n?c.ticks(n):("top"==c.orient()||"bottom"==c.orient())&&c.ticks(Math.abs(d.range()[1]-d.range()[0])/100),t.watchTransition(s,"axis").call(c),r=r||c.scale();var u=c.tickFormat();null==u&&(u=r.tickFormat());var v=t.selectAll("text.nv-axislabel").data([h||null]);v.exit().remove();var w,x,y;switch(c.orient()){case"top":v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",0).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b))+",0)"}).select("text").attr("dy","-0.5em").attr("y",-c.tickPadding()).attr("text-anchor","middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max top").attr("transform",function(b,c){return"translate("+a.utils.NaNtoZero(d.range()[c])+",0)"}));break;case"bottom":w=o+36;var z=30,A=0,B=t.selectAll("g").select("text"),C="";if(j%360){B.each(function(){var a=this.getBoundingClientRect(),b=a.width;A=a.height,b>z&&(z=b)}),C="rotate("+j+" 0,"+(A/2+c.tickPadding())+")";var D=Math.abs(Math.sin(j*Math.PI/180));w=(D?D*z:z)+30,B.attr("transform",C).style("text-anchor",j%360>0?"start":"end")}v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",w).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data([d.domain()[0],d.domain()[d.domain().length-1]]),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",c.tickPadding()).attr("transform",C).style("text-anchor",j?j%360>0?"start":"end":"middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max bottom").attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"})),l&&B.attr("transform",function(a,b){return"translate(0,"+(b%2==0?"0":"12")+")"});break;case"right":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"begin").attr("transform",k?"rotate(90)":"").attr("y",k?-Math.max(e.right,f)+12:-10).attr("x",k?d3.max(d.range())/2:c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(d(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",c.tickPadding()).style("text-anchor","start").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1));break;case"left":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"end").attr("transform",k?"rotate(-90)":"").attr("y",k?-Math.max(e.left,f)+25-(o||0):-10).attr("x",k?-d3.max(d.range())/2:-c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(r(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-c.tickPadding()).attr("text-anchor","end").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1))}if(v.text(function(a){return a}),!i||"left"!==c.orient()&&"right"!==c.orient()||(t.selectAll("g").each(function(a){d3.select(this).select("text").attr("opacity",1),(d(a)d.range()[0]-10)&&((a>1e-10||-1e-10>a)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0))}),d.domain()[0]==d.domain()[1]&&0==d.domain()[0]&&p.selectAll("g.nv-axisMaxMin").style("opacity",function(a,b){return b?0:1})),i&&("top"===c.orient()||"bottom"===c.orient())){var E=[];p.selectAll("g.nv-axisMaxMin").each(function(a,b){try{E.push(b?d(a)-this.getBoundingClientRect().width-4:d(a)+this.getBoundingClientRect().width+4)}catch(c){E.push(b?d(a)-4:d(a)+4)}}),t.selectAll("g").each(function(a){(d(a)E[1])&&(a>1e-10||-1e-10>a?d3.select(this).remove():d3.select(this).select("text").remove())})}t.selectAll(".tick").filter(function(a){return!parseFloat(Math.round(1e5*a)/1e6)&&void 0!==a}).classed("zero",!0),r=d.copy()}),s.renderEnd("axis immediate"),b}var c=d3.svg.axis(),d=d3.scale.linear(),e={top:0,right:0,bottom:0,left:0},f=75,g=60,h=null,i=!0,j=0,k=!0,l=!1,m=!1,n=null,o=0,p=250,q=d3.dispatch("renderEnd");c.scale(d).orient("bottom").tickFormat(function(a){return a});var r,s=a.utils.renderWatch(q,p);return b.axis=c,b.dispatch=q,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{axisLabelDistance:{get:function(){return o},set:function(a){o=a}},staggerLabels:{get:function(){return l},set:function(a){l=a}},rotateLabels:{get:function(){return j},set:function(a){j=a}},rotateYLabel:{get:function(){return k},set:function(a){k=a}},showMaxMin:{get:function(){return i},set:function(a){i=a}},axisLabel:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return g},set:function(a){g=a}},ticks:{get:function(){return n},set:function(a){n=a}},width:{get:function(){return f},set:function(a){f=a}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},duration:{get:function(){return p},set:function(a){p=a,s.reset(p)}},scale:{get:function(){return d},set:function(e){d=e,c.scale(d),m="function"==typeof d.rangeBands,a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"])}}}),a.utils.initOptions(b),a.utils.inheritOptionsD3(b,c,["orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"]),a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"]),b},a.models.boxPlot=function(){"use strict";function b(l){return v.reset(),l.each(function(b){var l=j-i.left-i.right,p=k-i.top-i.bottom;r=d3.select(this),a.utils.initSVG(r),m.domain(c||b.map(function(a,b){return o(a,b)})).rangeBands(e||[0,l],.1);var w=[];if(!d){var x=d3.min(b.map(function(a){var b=[];return b.push(a.values.Q1),a.values.hasOwnProperty("whisker_low")&&null!==a.values.whisker_low&&b.push(a.values.whisker_low),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.min(b)})),y=d3.max(b.map(function(a){var b=[];return b.push(a.values.Q3),a.values.hasOwnProperty("whisker_high")&&null!==a.values.whisker_high&&b.push(a.values.whisker_high),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.max(b)}));w=[x,y]}n.domain(d||w),n.range(f||[p,0]),g=g||m,h=h||n.copy().range([n(0),n(0)]);{var z=r.selectAll("g.nv-wrap").data([b]);z.enter().append("g").attr("class","nvd3 nv-wrap")}z.attr("transform","translate("+i.left+","+i.top+")");var A=z.selectAll(".nv-boxplot").data(function(a){return a}),B=A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);A.attr("class","nv-boxplot").attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}).classed("hover",function(a){return a.hover}),A.watchTransition(v,"nv-boxplot: boxplots").style("stroke-opacity",1).style("fill-opacity",.75).delay(function(a,c){return c*t/b.length}).attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}),A.exit().remove(),B.each(function(a,b){var c=d3.select(this);["low","high"].forEach(function(d){a.values.hasOwnProperty("whisker_"+d)&&null!==a.values["whisker_"+d]&&(c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-whisker nv-boxplot-"+d),c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-tick nv-boxplot-"+d))})});var C=A.selectAll(".nv-boxplot-outlier").data(function(a){return a.values.hasOwnProperty("outliers")&&null!==a.values.outliers?a.values.outliers:[]});C.enter().append("circle").style("fill",function(a,b,c){return q(a,c)}).style("stroke",function(a,b,c){return q(a,c)}).on("mouseover",function(a,b,c){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:a,color:q(a,c)},e:d3.event})}).on("mouseout",function(a,b,c){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:a,color:q(a,c)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),C.attr("class","nv-boxplot-outlier"),C.watchTransition(v,"nv-boxplot: nv-boxplot-outlier").attr("cx",.45*m.rangeBand()).attr("cy",function(a){return n(a)}).attr("r","3"),C.exit().remove();var D=function(){return null===u?.9*m.rangeBand():Math.min(75,.9*m.rangeBand())},E=function(){return.45*m.rangeBand()-D()/2},F=function(){return.45*m.rangeBand()+D()/2};["low","high"].forEach(function(a){var b="low"===a?"Q1":"Q3";A.select("line.nv-boxplot-whisker.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",.45*m.rangeBand()).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",.45*m.rangeBand()).attr("y2",function(a){return n(a.values[b])}),A.select("line.nv-boxplot-tick.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",E).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",F).attr("y2",function(b){return n(b.values["whisker_"+a])})}),["low","high"].forEach(function(a){B.selectAll(".nv-boxplot-"+a).on("mouseover",function(b,c,d){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mouseout",function(b,c,d){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})})}),B.append("rect").attr("class","nv-boxplot-box").on("mouseover",function(a,b){d3.select(this).classed("hover",!0),s.elementMouseover({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),s.elementMouseout({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),A.select("rect.nv-boxplot-box").watchTransition(v,"nv-boxplot: boxes").attr("y",function(a){return n(a.values.Q3)}).attr("width",D).attr("x",E).attr("height",function(a){return Math.abs(n(a.values.Q3)-n(a.values.Q1))||1}).style("fill",function(a,b){return a.color||q(a,b)}).style("stroke",function(a,b){return a.color||q(a,b)}),B.append("line").attr("class","nv-boxplot-median"),A.select("line.nv-boxplot-median").watchTransition(v,"nv-boxplot: boxplots line").attr("x1",E).attr("y1",function(a){return n(a.values.Q2)}).attr("x2",F).attr("y2",function(a){return n(a.values.Q2)}),g=m.copy(),h=n.copy()}),v.renderEnd("nv-boxplot immediate"),b}var c,d,e,f,g,h,i={top:0,right:0,bottom:0,left:0},j=960,k=500,l=Math.floor(1e4*Math.random()),m=d3.scale.ordinal(),n=d3.scale.linear(),o=function(a){return a.x},p=function(a){return a.y},q=a.utils.defaultColor(),r=null,s=d3.dispatch("elementMouseover","elementMouseout","elementMousemove","renderEnd"),t=250,u=null,v=a.utils.renderWatch(s,t);return b.dispatch=s,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},maxBoxWidth:{get:function(){return u},set:function(a){u=a}},x:{get:function(){return o},set:function(a){o=a}},y:{get:function(){return p},set:function(a){p=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return l},set:function(a){l=a}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}},duration:{get:function(){return t},set:function(a){t=a,v.reset(t)}}}),a.utils.initOptions(b),b},a.models.boxPlotChart=function(){"use strict";function b(k){return t.reset(),t.models(e),l&&t.models(f),m&&t.models(g),k.each(function(k){var p=d3.select(this);a.utils.initSVG(p);var t=(i||parseInt(p.style("width"))||960)-h.left-h.right,u=(j||parseInt(p.style("height"))||400)-h.top-h.bottom;if(b.update=function(){r.beforeUpdate(),p.transition().duration(s).call(b)},b.container=this,!(k&&k.length&&k.filter(function(a){return a.values.hasOwnProperty("Q1")&&a.values.hasOwnProperty("Q2")&&a.values.hasOwnProperty("Q3")}).length)){var v=p.selectAll(".nv-noData").data([q]);return v.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),v.attr("x",h.left+t/2).attr("y",h.top+u/2).text(function(a){return a}),b}p.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var w=p.selectAll("g.nv-wrap.nv-boxPlotWithAxes").data([k]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-boxPlotWithAxes").append("g"),y=x.append("defs"),z=w.select("g"); +x.append("g").attr("class","nv-x nv-axis"),x.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),x.append("g").attr("class","nv-barsWrap"),z.attr("transform","translate("+h.left+","+h.top+")"),n&&z.select(".nv-y.nv-axis").attr("transform","translate("+t+",0)"),e.width(t).height(u);var A=z.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));if(A.transition().call(e),y.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),z.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(o?2:1)).attr("height",16).attr("x",-c.rangeBand()/(o?1:2)),l){f.scale(c).ticks(a.utils.calcTicksX(t/100,k)).tickSize(-u,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),z.select(".nv-x.nv-axis").call(f);var B=z.select(".nv-x.nv-axis").selectAll("g");o&&B.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}m&&(g.scale(d).ticks(Math.floor(u/36)).tickSize(-t,0),z.select(".nv-y.nv-axis").call(g)),z.select(".nv-zeroLine line").attr("x1",0).attr("x2",t).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("nv-boxplot chart immediate"),b}var c,d,e=a.models.boxPlot(),f=a.models.axis(),g=a.models.axis(),h={top:15,right:10,bottom:50,left:60},i=null,j=null,k=a.utils.getColor(),l=!0,m=!0,n=!1,o=!1,p=a.models.tooltip(),q="No Data Available.",r=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(n?"right":"left").tickFormat(d3.format(",.1f")),p.duration(0);var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){p.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(a){p.data(a).hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){p.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.boxplot=e,b.xAxis=f,b.yAxis=g,b.tooltip=p,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},staggerLabels:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return l},set:function(a){l=a}},showYAxis:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return tooltips},set:function(a){tooltips=a}},tooltipContent:{get:function(){return p},set:function(a){p=a}},noData:{get:function(){return q},set:function(a){q=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!==a.top?a.top:h.top,h.right=void 0!==a.right?a.right:h.right,h.bottom=void 0!==a.bottom?a.bottom:h.bottom,h.left=void 0!==a.left?a.left:h.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}},rightAlignYAxis:{get:function(){return n},set:function(a){n=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.bullet=function(){"use strict";function b(d){return d.each(function(b,d){var p=m-c.left-c.right,s=n-c.top-c.bottom;o=d3.select(this),a.utils.initSVG(o);{var t=f.call(this,b,d).slice().sort(d3.descending),u=g.call(this,b,d).slice().sort(d3.descending),v=h.call(this,b,d).slice().sort(d3.descending),w=i.call(this,b,d).slice(),x=j.call(this,b,d).slice(),y=k.call(this,b,d).slice(),z=d3.scale.linear().domain(d3.extent(d3.merge([l,t]))).range(e?[p,0]:[0,p]);this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range())}this.__chart__=z;var A=d3.min(t),B=d3.max(t),C=t[1],D=o.selectAll("g.nv-wrap.nv-bullet").data([b]),E=D.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),F=E.append("g"),G=D.select("g");F.append("rect").attr("class","nv-range nv-rangeMax"),F.append("rect").attr("class","nv-range nv-rangeAvg"),F.append("rect").attr("class","nv-range nv-rangeMin"),F.append("rect").attr("class","nv-measure"),D.attr("transform","translate("+c.left+","+c.top+")");var H=function(a){return Math.abs(z(a)-z(0))},I=function(a){return z(0>a?a:0)};G.select("rect.nv-rangeMax").attr("height",s).attr("width",H(B>0?B:A)).attr("x",I(B>0?B:A)).datum(B>0?B:A),G.select("rect.nv-rangeAvg").attr("height",s).attr("width",H(C)).attr("x",I(C)).datum(C),G.select("rect.nv-rangeMin").attr("height",s).attr("width",H(B)).attr("x",I(B)).attr("width",H(B>0?A:B)).attr("x",I(B>0?A:B)).datum(B>0?A:B),G.select("rect.nv-measure").style("fill",q).attr("height",s/3).attr("y",s/3).attr("width",0>v?z(0)-z(v[0]):z(v[0])-z(0)).attr("x",I(v)).on("mouseover",function(){r.elementMouseover({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mouseout",function(){r.elementMouseout({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})});var J=s/6,K=u.map(function(a,b){return{value:a,label:x[b]}});F.selectAll("path.nv-markerTriangle").data(K).enter().append("path").attr("class","nv-markerTriangle").attr("transform",function(a){return"translate("+z(a.value)+","+s/2+")"}).attr("d","M0,"+J+"L"+J+","+-J+" "+-J+","+-J+"Z").on("mouseover",function(a){r.elementMouseover({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill"),pos:[z(a.value),s/2]})}).on("mousemove",function(a){r.elementMousemove({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a){r.elementMouseout({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}),D.selectAll(".nv-range").on("mouseover",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseover({value:a,label:c,color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseout({value:a,label:c,color:d3.select(this).style("fill")})})}),b}var c={top:0,right:0,bottom:0,left:0},d="left",e=!1,f=function(a){return a.ranges},g=function(a){return a.markers?a.markers:[0]},h=function(a){return a.measures},i=function(a){return a.rangeLabels?a.rangeLabels:[]},j=function(a){return a.markerLabels?a.markerLabels:[]},k=function(a){return a.measureLabels?a.measureLabels:[]},l=[0],m=380,n=30,o=null,p=null,q=a.utils.getColor(["#1f77b4"]),r=d3.dispatch("elementMouseover","elementMouseout","elementMousemove");return b.dispatch=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return f},set:function(a){f=a}},markers:{get:function(){return g},set:function(a){g=a}},measures:{get:function(){return h},set:function(a){h=a}},forceX:{get:function(){return l},set:function(a){l=a}},width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},tickFormat:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},orient:{get:function(){return d},set:function(a){d=a,e="right"==d||"bottom"==d}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.bulletChart=function(){"use strict";function b(d){return d.each(function(e,o){var p=d3.select(this);a.utils.initSVG(p);var q=a.utils.availableWidth(k,p,g),r=l-g.top-g.bottom;if(b.update=function(){b(d)},b.container=this,!e||!h.call(this,e,o))return a.utils.noData(b,p),b;p.selectAll(".nv-noData").remove();var s=h.call(this,e,o).slice().sort(d3.descending),t=i.call(this,e,o).slice().sort(d3.descending),u=j.call(this,e,o).slice().sort(d3.descending),v=p.selectAll("g.nv-wrap.nv-bulletChart").data([e]),w=v.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),x=w.append("g"),y=v.select("g");x.append("g").attr("class","nv-bulletWrap"),x.append("g").attr("class","nv-titles"),v.attr("transform","translate("+g.left+","+g.top+")");var z=d3.scale.linear().domain([0,Math.max(s[0],t[0],u[0])]).range(f?[q,0]:[0,q]),A=this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range());this.__chart__=z;var B=x.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(l-g.top-g.bottom)/2+")");B.append("text").attr("class","nv-title").text(function(a){return a.title}),B.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(a){return a.subtitle}),c.width(q).height(r);var C=y.select(".nv-bulletWrap");d3.transition(C).call(c);var D=m||z.tickFormat(q/100),E=y.selectAll("g.nv-tick").data(z.ticks(n?n:q/50),function(a){return this.textContent||D(a)}),F=E.enter().append("g").attr("class","nv-tick").attr("transform",function(a){return"translate("+A(a)+",0)"}).style("opacity",1e-6);F.append("line").attr("y1",r).attr("y2",7*r/6),F.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",7*r/6).text(D);var G=d3.transition(E).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1);G.select("line").attr("y1",r).attr("y2",7*r/6),G.select("text").attr("y",7*r/6),d3.transition(E.exit()).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush(),b}var c=a.models.bullet(),d=a.models.tooltip(),e="left",f=!1,g={top:5,right:40,bottom:20,left:120},h=function(a){return a.ranges},i=function(a){return a.markers?a.markers:[0]},j=function(a){return a.measures},k=null,l=55,m=null,n=null,o=null,p=d3.dispatch("tooltipShow","tooltipHide");return d.duration(0).headerEnabled(!1),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.label,value:a.value,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.bullet=c,b.dispatch=p,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return h},set:function(a){h=a}},markers:{get:function(){return i},set:function(a){i=a}},measures:{get:function(){return j},set:function(a){j=a}},width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},tickFormat:{get:function(){return m},set:function(a){m=a}},ticks:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return o},set:function(a){o=a}},tooltips:{get:function(){return d.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),d.enabled(!!b)}},tooltipContent:{get:function(){return d.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),d.contentGenerator(b)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},orient:{get:function(){return e},set:function(a){e=a,f="right"==e||"bottom"==e}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.candlestickBar=function(){"use strict";function b(x){return x.each(function(b){c=d3.select(this);var x=a.utils.availableWidth(i,c,h),y=a.utils.availableHeight(j,c,h);a.utils.initSVG(c);var A=x/b[0].values.length*.45;l.domain(d||d3.extent(b[0].values.map(n).concat(t))),l.range(v?f||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:f||[5+A/2,x-A/2-5]),m.domain(e||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(g||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var B=d3.select(this).selectAll("g.nv-wrap.nv-candlestickBar").data([b[0].values]),C=B.enter().append("g").attr("class","nvd3 nv-wrap nv-candlestickBar"),D=C.append("defs"),E=C.append("g"),F=B.select("g");E.append("g").attr("class","nv-ticks"),B.attr("transform","translate("+h.left+","+h.top+")"),c.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:k})}),D.append("clipPath").attr("id","nv-chart-clip-path-"+k).append("rect"),B.select("#nv-chart-clip-path-"+k+" rect").attr("width",x).attr("height",y),F.attr("clip-path",w?"url(#nv-chart-clip-path-"+k+")":"");var G=B.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});G.exit().remove();{var H=G.enter().append("g").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b});H.append("line").attr("class","nv-candlestick-lines").attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),H.append("rect").attr("class","nv-candlestick-rects nv-bars").attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}c.selectAll(".nv-candlestick-lines").transition().attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),c.selectAll(".nv-candlestick-rects").transition().attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}),b}var c,d,e,f,g,h={top:0,right:0,bottom:0,left:0},i=null,j=null,k=Math.floor(1e4*Math.random()),l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,d){b.clearHighlights(),c.select(".nv-candlestickBar .nv-tick-0-"+a).classed("hover",d)},b.clearHighlights=function(){c.select(".nv-candlestickBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return k},set:function(a){k=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!=a.top?a.top:h.top,h.right=void 0!=a.right?a.right:h.right,h.bottom=void 0!=a.bottom?a.bottom:h.bottom,h.left=void 0!=a.left?a.left:h.left}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.cumulativeLineChart=function(){"use strict";function b(l){return H.reset(),H.models(f),r&&H.models(g),s&&H.models(h),l.each(function(l){function A(){d3.select(b.container).style("cursor","ew-resize")}function E(){G.x=d3.event.x,G.i=Math.round(F.invert(G.x)),K()}function H(){d3.select(b.container).style("cursor","auto"),y.index=G.i,C.stateChange(y)}function K(){bb.data([G]);var a=b.duration();b.duration(0),b.update(),b.duration(a)}var L=d3.select(this);a.utils.initSVG(L),L.classed("nv-chart-"+x,!0);var M=this,N=a.utils.availableWidth(o,L,m),O=a.utils.availableHeight(p,L,m);if(b.update=function(){0===D?L.call(b):L.transition().duration(D).call(b)},b.container=this,y.setter(J(l),b.update).getter(I(l)).update(),y.disabled=l.map(function(a){return!!a.disabled}),!z){var P;z={};for(P in y)z[P]=y[P]instanceof Array?y[P].slice(0):y[P]}var Q=d3.behavior.drag().on("dragstart",A).on("drag",E).on("dragend",H);if(!(l&&l.length&&l.filter(function(a){return a.values.length}).length))return a.utils.noData(b,L),b;if(L.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale(),w)f.yDomain(null);else{var R=l.filter(function(a){return!a.disabled}).map(function(a){var b=d3.extent(a.values,f.y());return b[0]<-.95&&(b[0]=-.95),[(b[0]-b[1])/(1+b[1]),(b[1]-b[0])/(1+b[0])]}),S=[d3.min(R,function(a){return a[0]}),d3.max(R,function(a){return a[1]})];f.yDomain(S)}F.domain([0,l[0].values.length-1]).range([0,N]).clamp(!0);var l=c(G.i,l),T=v?"none":"all",U=L.selectAll("g.nv-wrap.nv-cumulativeLine").data([l]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),W=U.select("g");if(V.append("g").attr("class","nv-interactive"),V.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),V.append("g").attr("class","nv-y nv-axis"),V.append("g").attr("class","nv-background"),V.append("g").attr("class","nv-linesWrap").style("pointer-events",T),V.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),V.append("g").attr("class","nv-legendWrap"),V.append("g").attr("class","nv-controlsWrap"),q&&(i.width(N),W.select(".nv-legendWrap").datum(l).call(i),m.top!=i.height()&&(m.top=i.height(),O=a.utils.availableHeight(p,L,m)),W.select(".nv-legendWrap").attr("transform","translate(0,"+-m.top+")")),u){var X=[{key:"Re-scale y-axis",disabled:!w}];j.width(140).color(["#444","#444","#444"]).rightAlign(!1).margin({top:5,right:0,bottom:5,left:20}),W.select(".nv-controlsWrap").datum(X).attr("transform","translate(0,"+-m.top+")").call(j)}U.attr("transform","translate("+m.left+","+m.top+")"),t&&W.select(".nv-y.nv-axis").attr("transform","translate("+N+",0)");var Y=l.filter(function(a){return a.tempDisabled});U.select(".tempDisabled").remove(),Y.length&&U.append("text").attr("class","tempDisabled").attr("x",N/2).attr("y","-.71em").style("text-anchor","end").text(Y.map(function(a){return a.key}).join(", ")+" values cannot be calculated for this time period."),v&&(k.width(N).height(O).margin({left:m.left,top:m.top}).svgContainer(L).xScale(d),U.select(".nv-interactive").call(k)),V.select(".nv-background").append("rect"),W.select(".nv-background rect").attr("width",N).attr("height",O),f.y(function(a){return a.display.y}).width(N).height(O).color(l.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!l[b].disabled&&!l[b].tempDisabled}));var Z=W.select(".nv-linesWrap").datum(l.filter(function(a){return!a.disabled&&!a.tempDisabled}));Z.call(f),l.forEach(function(a,b){a.seriesIndex=b});var $=l.filter(function(a){return!a.disabled&&!!B(a)}),_=W.select(".nv-avgLinesWrap").selectAll("line").data($,function(a){return a.key}),ab=function(a){var b=e(B(a));return 0>b?0:b>O?O:b};_.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(a){return f.color()(a,a.seriesIndex)}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.style("stroke-opacity",function(a){var b=e(B(a));return 0>b||b>O?0:1}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.exit().remove();var bb=Z.selectAll(".nv-indexLine").data([G]);bb.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(Q),bb.attr("transform",function(a){return"translate("+F(a.i)+",0)"}).attr("height",O),r&&(g.scale(d)._ticks(a.utils.calcTicksX(N/70,l)).tickSize(-O,0),W.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),W.select(".nv-x.nv-axis").call(g)),s&&(h.scale(e)._ticks(a.utils.calcTicksY(O/36,l)).tickSize(-N,0),W.select(".nv-y.nv-axis").call(h)),W.select(".nv-background rect").on("click",function(){G.x=d3.mouse(this)[0],G.i=Math.round(F.invert(G.x)),y.index=G.i,C.stateChange(y),K()}),f.dispatch.on("elementClick",function(a){G.i=a.pointIndex,G.x=F(G.i),y.index=G.i,C.stateChange(y),K()}),j.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,w=!a.disabled,y.rescaleY=w,C.stateChange(y),b.update()}),i.dispatch.on("stateChange",function(a){for(var c in a)y[c]=a[c];C.stateChange(y),b.update()}),k.dispatch.on("elementMousemove",function(c){f.clearHighlights();var d,e,i,j=[];if(l.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g,h){e=a.interactiveBisect(g.values,c.pointXValue,b.x()),f.highlightPoint(h,e,!0);var k=g.values[e];"undefined"!=typeof k&&("undefined"==typeof d&&(d=k),"undefined"==typeof i&&(i=b.xScale()(b.x()(k,e))),j.push({key:g.key,value:b.y()(k,e),color:n(g,g.seriesIndex)}))}),j.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(j.map(function(a){return a.value}),o,q);null!==r&&(j[r].highlight=!0)}var s=g.tickFormat()(b.x()(d,e),e);k.tooltip.position({left:i+m.left,top:c.mouseY+m.top}).chartContainer(M.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:s,series:j})(),k.renderGuideLine(i)}),k.dispatch.on("elementMouseout",function(){f.clearHighlights()}),C.on("changeState",function(a){"undefined"!=typeof a.disabled&&(l.forEach(function(b,c){b.disabled=a.disabled[c]}),y.disabled=a.disabled),"undefined"!=typeof a.index&&(G.i=a.index,G.x=F(G.i),y.index=a.index,bb.data([G])),"undefined"!=typeof a.rescaleY&&(w=a.rescaleY),b.update()})}),H.renderEnd("cumulativeLineChart immediate"),b}function c(a,b){return K||(K=f.y()),b.map(function(b){if(!b.values)return b;var c=b.values[a];if(null==c)return b;var d=K(c,a);return-.95>d&&!E?(b.tempDisabled=!0,b):(b.tempDisabled=!1,b.values=b.values.map(function(a,b){return a.display={y:(K(a,b)-d)/(1+d)},a}),b)})}var d,e,f=a.models.line(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.models.legend(),k=a.interactiveGuideline(),l=a.models.tooltip(),m={top:30,right:30,bottom:50,left:60},n=a.utils.defaultColor(),o=null,p=null,q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=!0,x=f.id(),y=a.utils.state(),z=null,A=null,B=function(a){return a.average},C=d3.dispatch("stateChange","changeState","renderEnd"),D=250,E=!1;y.index=0,y.rescaleY=w,g.orient("bottom").tickPadding(7),h.orient(t?"right":"left"),l.valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)}),j.updateState(!1);var F=d3.scale.linear(),G={i:0,x:0},H=a.utils.renderWatch(C,D),I=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),index:G.i,rescaleY:w}}},J=function(a){return function(b){void 0!==b.index&&(G.i=b.index),void 0!==b.rescaleY&&(w=b.rescaleY),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};f.dispatch.on("elementMouseover.tooltip",function(a){var c={x:b.x()(a.point),y:b.y()(a.point),color:a.point.color};a.point=c,l.data(a).position(a.pos).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){l.hidden(!0)});var K=null;return b.dispatch=C,b.lines=f,b.legend=i,b.controls=j,b.xAxis=g,b.yAxis=h,b.interactiveLayer=k,b.state=y,b.tooltip=l,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return o},set:function(a){o=a}},height:{get:function(){return p},set:function(a){p=a}},rescaleY:{get:function(){return w},set:function(a){w=a}},showControls:{get:function(){return u},set:function(a){u=a}},showLegend:{get:function(){return q},set:function(a){q=a}},average:{get:function(){return B},set:function(a){B=a}},defaultState:{get:function(){return z},set:function(a){z=a}},noData:{get:function(){return A},set:function(a){A=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},noErrorCheck:{get:function(){return E},set:function(a){E=a}},tooltips:{get:function(){return l.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),l.enabled(!!b)}},tooltipContent:{get:function(){return l.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),l.contentGenerator(b)}},margin:{get:function(){return m},set:function(a){m.top=void 0!==a.top?a.top:m.top,m.right=void 0!==a.right?a.right:m.right,m.bottom=void 0!==a.bottom?a.bottom:m.bottom,m.left=void 0!==a.left?a.left:m.left}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),i.color(n)}},useInteractiveGuideline:{get:function(){return v},set:function(a){v=a,a===!0&&(b.interactive(!1),b.useVoronoi(!1))}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,h.orient(a?"right":"left")}},duration:{get:function(){return D},set:function(a){D=a,f.duration(D),g.duration(D),h.duration(D),H.reset(D)}}}),a.utils.inheritOptions(b,f),a.utils.initOptions(b),b},a.models.discreteBar=function(){"use strict";function b(m){return y.reset(),m.each(function(b){var m=k-j.left-j.right,x=l-j.top-j.bottom;c=d3.select(this),a.utils.initSVG(c),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var z=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),y0:a.y0}})});n.domain(d||d3.merge(z).map(function(a){return a.x})).rangeBands(f||[0,m],.1),o.domain(e||d3.extent(d3.merge(z).map(function(a){return a.y}).concat(r))),o.range(t?g||[x-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]:g||[x,0]),h=h||n,i=i||o.copy().range([o(0),o(0)]);{var A=c.selectAll("g.nv-wrap.nv-discretebar").data([b]),B=A.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),C=B.append("g");A.select("g")}C.append("g").attr("class","nv-groups"),A.attr("transform","translate("+j.left+","+j.top+")");var D=A.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().watchTransition(y,"discreteBar: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),D.watchTransition(y,"discreteBar: groups").style("stroke-opacity",1).style("fill-opacity",.75);var E=D.selectAll("g.nv-bar").data(function(a){return a.values});E.exit().remove();var F=E.enter().append("g").attr("transform",function(a,b){return"translate("+(n(p(a,b))+.05*n.rangeBand())+", "+o(0)+")"}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),v.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),v.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){v.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){v.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()});F.append("rect").attr("height",0).attr("width",.9*n.rangeBand()/b.length),t?(F.append("text").attr("text-anchor","middle"),E.select("text").text(function(a,b){return u(q(a,b))}).watchTransition(y,"discreteBar: bars text").attr("x",.9*n.rangeBand()/2).attr("y",function(a,b){return q(a,b)<0?o(q(a,b))-o(0)+12:-4})):E.selectAll("text").remove(),E.attr("class",function(a,b){return q(a,b)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(a,b){return a.color||s(a,b)}).style("stroke",function(a,b){return a.color||s(a,b)}).select("rect").attr("class",w).watchTransition(y,"discreteBar: bars rect").attr("width",.9*n.rangeBand()/b.length),E.watchTransition(y,"discreteBar: bars").attr("transform",function(a,b){var c=n(p(a,b))+.05*n.rangeBand(),d=q(a,b)<0?o(0):o(0)-o(q(a,b))<1?o(0)-1:o(q(a,b));return"translate("+c+", "+d+")"}).select("rect").attr("height",function(a,b){return Math.max(Math.abs(o(q(a,b))-o(e&&e[0]||0))||1)}),h=n.copy(),i=o.copy()}),y.renderEnd("discreteBar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=d3.scale.ordinal(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=[0],s=a.utils.defaultColor(),t=!1,u=d3.format(",.2f"),v=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),w="discreteBar",x=250,y=a.utils.renderWatch(v,x);return b.dispatch=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},forceY:{get:function(){return r},set:function(a){r=a}},showValues:{get:function(){return t},set:function(a){t=a}},x:{get:function(){return p},set:function(a){p=a}},y:{get:function(){return q},set:function(a){q=a}},xScale:{get:function(){return n},set:function(a){n=a}},yScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},valueFormat:{get:function(){return u},set:function(a){u=a}},id:{get:function(){return m},set:function(a){m=a}},rectClass:{get:function(){return w},set:function(a){w=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b)}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x)}}}),a.utils.initOptions(b),b},a.models.discreteBarChart=function(){"use strict";function b(h){return t.reset(),t.models(e),m&&t.models(f),n&&t.models(g),h.each(function(h){var l=d3.select(this);a.utils.initSVG(l);var q=a.utils.availableWidth(j,l,i),t=a.utils.availableHeight(k,l,i);if(b.update=function(){r.beforeUpdate(),l.transition().duration(s).call(b)},b.container=this,!(h&&h.length&&h.filter(function(a){return a.values.length}).length))return a.utils.noData(b,l),b;l.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var u=l.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([h]),v=u.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),w=v.append("defs"),x=u.select("g");v.append("g").attr("class","nv-x nv-axis"),v.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),v.append("g").attr("class","nv-barsWrap"),x.attr("transform","translate("+i.left+","+i.top+")"),o&&x.select(".nv-y.nv-axis").attr("transform","translate("+q+",0)"),e.width(q).height(t);var y=x.select(".nv-barsWrap").datum(h.filter(function(a){return!a.disabled}));if(y.transition().call(e),w.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),x.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(p?2:1)).attr("height",16).attr("x",-c.rangeBand()/(p?1:2)),m){f.scale(c)._ticks(a.utils.calcTicksX(q/100,h)).tickSize(-t,0),x.select(".nv-x.nv-axis").attr("transform","translate(0,"+(d.range()[0]+(e.showValues()&&d.domain()[0]<0?16:0))+")"),x.select(".nv-x.nv-axis").call(f); +var z=x.select(".nv-x.nv-axis").selectAll("g");p&&z.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}n&&(g.scale(d)._ticks(a.utils.calcTicksY(t/36,h)).tickSize(-q,0),x.select(".nv-y.nv-axis").call(g)),x.select(".nv-zeroLine line").attr("x1",0).attr("x2",q).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("discreteBar chart immediate"),b}var c,d,e=a.models.discreteBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.tooltip(),i={top:15,right:10,bottom:50,left:60},j=null,k=null,l=a.utils.getColor(),m=!0,n=!0,o=!1,p=!1,q=null,r=d3.dispatch("beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(o?"right":"left").tickFormat(d3.format(",.1f")),h.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).keyFormatter(function(a,b){return f.tickFormat()(a,b)});var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},h.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){h.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){h.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.discretebar=e,b.xAxis=f,b.yAxis=g,b.tooltip=h,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},staggerLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return m},set:function(a){m=a}},showYAxis:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return q},set:function(a){q=a}},tooltips:{get:function(){return h.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),h.enabled(!!b)}},tooltipContent:{get:function(){return h.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),h.contentGenerator(b)}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),e.color(l)}},rightAlignYAxis:{get:function(){return o},set:function(a){o=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.distribution=function(){"use strict";function b(k){return m.reset(),k.each(function(b){var k=(e-("x"===g?d.left+d.right:d.top+d.bottom),"x"==g?"y":"x"),l=d3.select(this);a.utils.initSVG(l),c=c||j;var n=l.selectAll("g.nv-distribution").data([b]),o=n.enter().append("g").attr("class","nvd3 nv-distribution"),p=(o.append("g"),n.select("g"));n.attr("transform","translate("+d.left+","+d.top+")");var q=p.selectAll("g.nv-dist").data(function(a){return a},function(a){return a.key});q.enter().append("g"),q.attr("class",function(a,b){return"nv-dist nv-series-"+b}).style("stroke",function(a,b){return i(a,b)});var r=q.selectAll("line.nv-dist"+g).data(function(a){return a.values});r.enter().append("line").attr(g+"1",function(a,b){return c(h(a,b))}).attr(g+"2",function(a,b){return c(h(a,b))}),m.transition(q.exit().selectAll("line.nv-dist"+g),"dist exit").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}).style("stroke-opacity",0).remove(),r.attr("class",function(a,b){return"nv-dist"+g+" nv-dist"+g+"-"+b}).attr(k+"1",0).attr(k+"2",f),m.transition(r,"dist").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}),c=j.copy()}),m.renderEnd("distribution immediate"),b}var c,d={top:0,right:0,bottom:0,left:0},e=400,f=8,g="x",h=function(a){return a[g]},i=a.utils.defaultColor(),j=d3.scale.linear(),k=250,l=d3.dispatch("renderEnd"),m=a.utils.renderWatch(l,k);return b.options=a.utils.optionsFunc.bind(b),b.dispatch=l,b.margin=function(a){return arguments.length?(d.top="undefined"!=typeof a.top?a.top:d.top,d.right="undefined"!=typeof a.right?a.right:d.right,d.bottom="undefined"!=typeof a.bottom?a.bottom:d.bottom,d.left="undefined"!=typeof a.left?a.left:d.left,b):d},b.width=function(a){return arguments.length?(e=a,b):e},b.axis=function(a){return arguments.length?(g=a,b):g},b.size=function(a){return arguments.length?(f=a,b):f},b.getData=function(a){return arguments.length?(h=d3.functor(a),b):h},b.scale=function(a){return arguments.length?(j=a,b):j},b.color=function(c){return arguments.length?(i=a.utils.getColor(c),b):i},b.duration=function(a){return arguments.length?(k=a,m.reset(k),b):k},b},a.models.furiousLegend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?g(a,b):"#fff":m?void 0:a.disabled?g(a,b):"#fff"}function r(a,b){return m&&"furious"==o?a.disengaged?"#fff":g(a,b):a.disabled?"#fff":g(a,b)}return p.each(function(b){var p=d-c.left-c.right,s=d3.select(this);a.utils.initSVG(s);var t=s.selectAll("g.nv-legend").data([b]),u=(t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),t.select("g"));t.attr("transform","translate("+c.left+","+c.top+")");var v,w=u.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),x=w.enter().append("g").attr("class","nv-series");if("classic"==o)x.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),v=w.select("circle");else if("furious"==o){x.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),v=w.select("rect"),x.append("g").attr("class","nv-check-box").property("innerHTML",'').attr("transform","translate(-10,-8)scale(0.5)");var y=w.select(".nv-check-box");y.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}x.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var z=w.select("text.nv-legend-text");w.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=w.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=w.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),w.classed("nv-disabled",function(a){return a.userDisabled}),w.exit().remove(),z.attr("fill",q).text(f);var A;switch(o){case"furious":A=23;break;case"classic":A=20}if(h){var B=[];w.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}B.push(b+i)});for(var C=0,D=0,E=[];p>D&&Cp&&C>1;){E=[],C--;for(var F=0;F(E[F%C]||0)&&(E[F%C]=B[F]);D=E.reduce(function(a,b){return a+b})}for(var G=[],H=0,I=0;C>H;H++)G[H]=I,I+=E[H];w.attr("transform",function(a,b){return"translate("+G[b%C]+","+(5+Math.floor(b/C)*A)+")"}),j?u.attr("transform","translate("+(d-c.right-D)+","+c.top+")"):u.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(B.length/C)*A}else{var J,K=5,L=5,M=0;w.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return J=L,dM&&(M=L),"translate("+J+","+K+")"}),u.attr("transform","translate("+(d-c.right-M)+","+c.top+")"),e=c.top+c.bottom+K+15}"furious"==o&&v.attr("width",function(a,b){return z[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),v.style("fill",r).style("stroke",function(a,b){return a.color||g(a,b)})}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=28,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBar=function(){"use strict";function b(x){return x.each(function(b){w.reset(),k=d3.select(this);var x=a.utils.availableWidth(h,k,g),y=a.utils.availableHeight(i,k,g);a.utils.initSVG(k),l.domain(c||d3.extent(b[0].values.map(n).concat(p))),l.range(r?e||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:e||[0,x]),m.domain(d||d3.extent(b[0].values.map(o).concat(q))).range(f||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var z=k.selectAll("g.nv-wrap.nv-historicalBar-"+j).data([b[0].values]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+j),B=A.append("defs"),C=A.append("g"),D=z.select("g");C.append("g").attr("class","nv-bars"),z.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){u.chartClick({data:a,index:b,pos:d3.event,id:j})}),B.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),z.select("#nv-chart-clip-path-"+j+" rect").attr("width",x).attr("height",y),D.attr("clip-path",s?"url(#nv-chart-clip-path-"+j+")":"");var E=z.select(".nv-bars").selectAll(".nv-bar").data(function(a){return a},function(a,b){return n(a,b)});E.exit().remove(),E.enter().append("rect").attr("x",0).attr("y",function(b,c){return a.utils.NaNtoZero(m(Math.max(0,o(b,c))))}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.abs(m(o(b,c))-m(0)))}).attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).on("mouseover",function(a,b){v&&(d3.select(this).classed("hover",!0),u.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mouseout",function(a,b){v&&(d3.select(this).classed("hover",!1),u.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mousemove",function(a,b){v&&u.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v&&(u.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}).on("dblclick",function(a,b){v&&(u.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}),E.attr("fill",function(a,b){return t(a,b)}).attr("class",function(a,b,c){return(o(a,b)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+c+"-"+b}).watchTransition(w,"bars").attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).attr("width",x/b[0].values.length*.9),E.watchTransition(w,"bars").attr("y",function(b,c){var d=o(b,c)<0?m(0):m(0)-m(o(b,c))<1?m(0)-1:m(o(b,c));return a.utils.NaNtoZero(d)}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.max(Math.abs(m(o(b,c))-m(0)),1))})}),w.renderEnd("historicalBar immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=[],q=[0],r=!1,s=!0,t=a.utils.defaultColor(),u=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),v=!0,w=a.utils.renderWatch(u,0);return b.highlightPoint=function(a,b){k.select(".nv-bars .nv-bar-0-"+a).classed("hover",b)},b.clearHighlights=function(){k.select(".nv-bars .nv-bar.hover").classed("hover",!1)},b.dispatch=u,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},forceX:{get:function(){return p},set:function(a){p=a}},forceY:{get:function(){return q},set:function(a){q=a}},padData:{get:function(){return r},set:function(a){r=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},clipEdge:{get:function(){return s},set:function(a){s=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return v},set:function(a){v=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return t},set:function(b){t=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBarChart=function(b){"use strict";function c(b){return b.each(function(k){z.reset(),z.models(f),q&&z.models(g),r&&z.models(h);var w=d3.select(this),A=this;a.utils.initSVG(w);var B=a.utils.availableWidth(n,w,l),C=a.utils.availableHeight(o,w,l);if(c.update=function(){w.transition().duration(y).call(c)},c.container=this,u.disabled=k.map(function(a){return!!a.disabled}),!v){var D;v={};for(D in u)v[D]=u[D]instanceof Array?u[D].slice(0):u[D]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(c,w),c;w.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale();var E=w.selectAll("g.nv-wrap.nv-historicalBarChart").data([k]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),G=E.select("g");F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-barsWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),p&&(i.width(B),G.select(".nv-legendWrap").datum(k).call(i),l.top!=i.height()&&(l.top=i.height(),C=a.utils.availableHeight(o,w,l)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-l.top+")")),E.attr("transform","translate("+l.left+","+l.top+")"),s&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),t&&(j.width(B).height(C).margin({left:l.left,top:l.top}).svgContainer(w).xScale(d),E.select(".nv-interactive").call(j)),f.width(B).height(C).color(k.map(function(a,b){return a.color||m(a,b)}).filter(function(a,b){return!k[b].disabled}));var H=G.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));H.transition().call(f),q&&(g.scale(d)._ticks(a.utils.calcTicksX(B/100,k)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),G.select(".nv-x.nv-axis").transition().call(g)),r&&(h.scale(e)._ticks(a.utils.calcTicksY(C/36,k)).tickSize(-B,0),G.select(".nv-y.nv-axis").transition().call(h)),j.dispatch.on("elementMousemove",function(b){f.clearHighlights();var d,e,i,n=[];k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g){e=a.interactiveBisect(g.values,b.pointXValue,c.x()),f.highlightPoint(e,!0);var h=g.values[e];void 0!==h&&(void 0===d&&(d=h),void 0===i&&(i=c.xScale()(c.x()(h,e))),n.push({key:g.key,value:c.y()(h,e),color:m(g,g.seriesIndex),data:g.values[e]}))});var o=g.tickFormat()(c.x()(d,e));j.tooltip.position({left:i+l.left,top:b.mouseY+l.top}).chartContainer(A.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:o,index:e,series:n})(),j.renderGuideLine(i)}),j.dispatch.on("elementMouseout",function(){x.tooltipHide(),f.clearHighlights()}),i.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){return a.disabled=!1,E.selectAll(".nv-series").classed("disabled",!1),a}),u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),b.transition().call(c)}),i.dispatch.on("legendDblclick",function(a){k.forEach(function(a){a.disabled=!0}),a.disabled=!1,u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),c.update()}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),c.update()})}),z.renderEnd("historicalBarChart immediate"),c}var d,e,f=b||a.models.historicalBar(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:90,bottom:50,left:90},m=a.utils.defaultColor(),n=null,o=null,p=!1,q=!0,r=!0,s=!1,t=!1,u={},v=null,w=null,x=d3.dispatch("tooltipHide","stateChange","changeState","renderEnd"),y=250;g.orient("bottom").tickPadding(7),h.orient(s?"right":"left"),k.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)});var z=a.utils.renderWatch(x,0);return f.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:c.x()(a.data),value:c.y()(a.data),color:a.color},k.data(a).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),f.dispatch.on("elementMousemove.tooltip",function(){k.position({top:d3.event.pageY,left:d3.event.pageX})()}),c.dispatch=x,c.bars=f,c.legend=i,c.xAxis=g,c.yAxis=h,c.interactiveLayer=j,c.tooltip=k,c.options=a.utils.optionsFunc.bind(c),c._options=Object.create({},{width:{get:function(){return n},set:function(a){n=a}},height:{get:function(){return o},set:function(a){o=a}},showLegend:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return q},set:function(a){q=a}},showYAxis:{get:function(){return r},set:function(a){r=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b),i.color(m),f.color(m)}},duration:{get:function(){return y},set:function(a){y=a,z.reset(y),h.duration(y),g.duration(y)}},rightAlignYAxis:{get:function(){return s},set:function(a){s=a,h.orient(a?"right":"left")}},useInteractiveGuideline:{get:function(){return t},set:function(a){t=a,a===!0&&c.interactive(!1)}}}),a.utils.inheritOptions(c,f),a.utils.initOptions(c),c},a.models.ohlcBarChart=function(){var b=a.models.historicalBarChart(a.models.ohlcBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open'+a.value+"
                                                                                                                                                                                                                                                                                                          open:"+b.yAxis.tickFormat()(c.open)+"
                                                                                                                                                                                                                                                                                                          close:"+b.yAxis.tickFormat()(c.close)+"
                                                                                                                                                                                                                                                                                                          high"+b.yAxis.tickFormat()(c.high)+"
                                                                                                                                                                                                                                                                                                          low:"+b.yAxis.tickFormat()(c.low)+"
                                                                                                                                                                                                                                                                                                          "}),b},a.models.candlestickBarChart=function(){var b=a.models.historicalBarChart(a.models.candlestickBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open'+a.value+"
                                                                                                                                                                                                                                                                                                          open:"+b.yAxis.tickFormat()(c.open)+"
                                                                                                                                                                                                                                                                                                          close:"+b.yAxis.tickFormat()(c.close)+"
                                                                                                                                                                                                                                                                                                          high"+b.yAxis.tickFormat()(c.high)+"
                                                                                                                                                                                                                                                                                                          low:"+b.yAxis.tickFormat()(c.low)+"
                                                                                                                                                                                                                                                                                                          "}),b},a.models.legend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?"#000":"#fff":m?void 0:(a.color||(a.color=g(a,b)),a.disabled?a.color:"#fff")}function r(a,b){return m&&"furious"==o&&a.disengaged?"#eee":a.color||g(a,b)}function s(a){return m&&"furious"==o?1:a.disabled?0:1}return p.each(function(b){var g=d-c.left-c.right,p=d3.select(this);a.utils.initSVG(p);var t=p.selectAll("g.nv-legend").data([b]),u=t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),v=t.select("g");t.attr("transform","translate("+c.left+","+c.top+")");var w,x,y=v.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),z=y.enter().append("g").attr("class","nv-series");switch(o){case"furious":x=23;break;case"classic":x=20}if("classic"==o)z.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),w=y.select("circle");else if("furious"==o){z.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),w=y.select(".nv-legend-symbol"),z.append("g").attr("class","nv-check-box").property("innerHTML",'').attr("transform","translate(-10,-8)scale(0.5)");var A=y.select(".nv-check-box");A.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}z.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var B=y.select("text.nv-legend-text");y.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=y.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=y.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),y.classed("nv-disabled",function(a){return a.userDisabled}),y.exit().remove(),B.attr("fill",q).text(f);var C=0;if(h){var D=[];y.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}D.push(b+i)});var E=0,F=[];for(C=0;g>C&&Eg&&E>1;){F=[],E--;for(var G=0;G(F[G%E]||0)&&(F[G%E]=D[G]);C=F.reduce(function(a,b){return a+b})}for(var H=[],I=0,J=0;E>I;I++)H[I]=J,J+=F[I];y.attr("transform",function(a,b){return"translate("+H[b%E]+","+(5+Math.floor(b/E)*x)+")"}),j?v.attr("transform","translate("+(d-c.right-C)+","+c.top+")"):v.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(D.length/E)*x}else{var K,L=5,M=5,N=0;y.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return K=M,dN&&(N=M),K+N>C&&(C=K+N),"translate("+K+","+L+")"}),v.attr("transform","translate("+(d-c.right-N)+","+c.top+")"),e=c.top+c.bottom+L+15}if("furious"==o){w.attr("width",function(a,b){return B[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),u.insert("rect",":first-child").attr("class","nv-legend-bg").attr("fill","#eee").attr("opacity",0);var O=v.select(".nv-legend-bg");O.transition().duration(300).attr("x",-x).attr("width",C+x-12).attr("height",e+10).attr("y",-c.top-10).attr("opacity",m?1:0)}w.style("fill",r).style("fill-opacity",s).style("stroke",r)}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=32,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.line=function(){"use strict";function b(r){return v.reset(),v.models(e),r.each(function(b){i=d3.select(this);var r=a.utils.availableWidth(g,i,f),s=a.utils.availableHeight(h,i,f);a.utils.initSVG(i),c=e.xScale(),d=e.yScale(),t=t||c,u=u||d;var w=i.selectAll("g.nv-wrap.nv-line").data([b]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),y=x.append("defs"),z=x.append("g"),A=w.select("g");z.append("g").attr("class","nv-groups"),z.append("g").attr("class","nv-scatterWrap"),w.attr("transform","translate("+f.left+","+f.top+")"),e.width(r).height(s);var B=w.select(".nv-scatterWrap");B.call(e),y.append("clipPath").attr("id","nv-edge-clip-"+e.id()).append("rect"),w.select("#nv-edge-clip-"+e.id()+" rect").attr("width",r).attr("height",s>0?s:0),A.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":""),B.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":"");var C=w.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});C.enter().append("g").style("stroke-opacity",1e-6).style("stroke-width",function(a){return a.strokeWidth||j}).style("fill-opacity",1e-6),C.exit().remove(),C.attr("class",function(a,b){return(a.classed||"")+" nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return k(a,b)}).style("stroke",function(a,b){return k(a,b)}),C.watchTransition(v,"line: groups").style("stroke-opacity",1).style("fill-opacity",function(a){return a.fillOpacity||.5});var D=C.selectAll("path.nv-area").data(function(a){return o(a)?[a]:[]});D.enter().append("path").attr("class","nv-area").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y0(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))}).y1(function(){return u(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])}),C.exit().selectAll("path.nv-area").remove(),D.watchTransition(v,"line: areaPaths").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y0(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))}).y1(function(){return d(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])});var E=C.selectAll("path.nv-line").data(function(a){return[a.values]});E.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))})),E.watchTransition(v,"line: linePaths").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))})),t=c.copy(),u=d.copy()}),v.renderEnd("line immediate"),b}var c,d,e=a.models.scatter(),f={top:0,right:0,bottom:0,left:0},g=960,h=500,i=null,j=1.5,k=a.utils.defaultColor(),l=function(a){return a.x},m=function(a){return a.y},n=function(a,b){return!isNaN(m(a,b))&&null!==m(a,b)},o=function(a){return a.area},p=!1,q="linear",r=250,s=d3.dispatch("elementClick","elementMouseover","elementMouseout","renderEnd");e.pointSize(16).pointDomain([16,256]);var t,u,v=a.utils.renderWatch(s,r);return b.dispatch=s,b.scatter=e,e.dispatch.on("elementClick",function(){s.elementClick.apply(this,arguments)}),e.dispatch.on("elementMouseover",function(){s.elementMouseover.apply(this,arguments)}),e.dispatch.on("elementMouseout",function(){s.elementMouseout.apply(this,arguments)}),b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},defined:{get:function(){return n},set:function(a){n=a}},interpolate:{get:function(){return q},set:function(a){q=a}},clipEdge:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}},duration:{get:function(){return r},set:function(a){r=a,v.reset(r),e.duration(r)}},isArea:{get:function(){return o},set:function(a){o=d3.functor(a)}},x:{get:function(){return l},set:function(a){l=a,e.x(a)}},y:{get:function(){return m},set:function(a){m=a,e.y(a)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.lineChart=function(){"use strict";function b(j){return y.reset(),y.models(e),p&&y.models(f),q&&y.models(g),j.each(function(j){var v=d3.select(this),y=this;a.utils.initSVG(v);var B=a.utils.availableWidth(m,v,k),C=a.utils.availableHeight(n,v,k);if(b.update=function(){0===x?v.call(b):v.transition().duration(x).call(b)},b.container=this,t.setter(A(j),b.update).getter(z(j)).update(),t.disabled=j.map(function(a){return!!a.disabled}),!u){var D;u={};for(D in t)u[D]=t[D]instanceof Array?t[D].slice(0):t[D] +}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,v),b;v.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var E=v.selectAll("g.nv-wrap.nv-lineChart").data([j]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),G=E.select("g");F.append("rect").style("opacity",0),F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-linesWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),G.select("rect").attr("width",B).attr("height",C>0?C:0),o&&(h.width(B),G.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),C=a.utils.availableHeight(n,v,k)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-k.top+")")),E.attr("transform","translate("+k.left+","+k.top+")"),r&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),s&&(i.width(B).height(C).margin({left:k.left,top:k.top}).svgContainer(v).xScale(c),E.select(".nv-interactive").call(i)),e.width(B).height(C).color(j.map(function(a,b){return a.color||l(a,b)}).filter(function(a,b){return!j[b].disabled}));var H=G.select(".nv-linesWrap").datum(j.filter(function(a){return!a.disabled}));H.call(e),p&&(f.scale(c)._ticks(a.utils.calcTicksX(B/100,j)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),G.select(".nv-x.nv-axis").call(f)),q&&(g.scale(d)._ticks(a.utils.calcTicksY(C/36,j)).tickSize(-B,0),G.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)t[c]=a[c];w.stateChange(t),b.update()}),i.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,h,m,n=[];if(j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,g){h=a.interactiveBisect(f.values,c.pointXValue,b.x());var i=f.values[h],j=b.y()(i,h);null!=j&&e.highlightPoint(g,h,!0),void 0!==i&&(void 0===d&&(d=i),void 0===m&&(m=b.xScale()(b.x()(i,h))),n.push({key:f.key,value:j,color:l(f,f.seriesIndex)}))}),n.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(n.map(function(a){return a.value}),o,q);null!==r&&(n[r].highlight=!0)}var s=f.tickFormat()(b.x()(d,h));i.tooltip.position({left:c.mouseX+k.left,top:c.mouseY+k.top}).chartContainer(y.parentNode).valueFormatter(function(a){return null==a?"N/A":g.tickFormat()(a)}).data({value:s,index:h,series:n})(),i.renderGuideLine(m)}),i.dispatch.on("elementClick",function(c){var d,f=[];j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(e){var g=a.interactiveBisect(e.values,c.pointXValue,b.x()),h=e.values[g];if("undefined"!=typeof h){"undefined"==typeof d&&(d=b.xScale()(b.x()(h,g)));var i=b.yScale()(b.y()(h,g));f.push({point:h,pointIndex:g,pos:[d,i],seriesIndex:e.seriesIndex,series:e})}}),e.dispatch.elementClick(f)}),i.dispatch.on("elementMouseout",function(){e.clearHighlights()}),w.on("changeState",function(a){"undefined"!=typeof a.disabled&&j.length===a.disabled.length&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),t.disabled=a.disabled),b.update()})}),y.renderEnd("lineChart immediate"),b}var c,d,e=a.models.line(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.interactiveGuideline(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=a.utils.defaultColor(),m=null,n=null,o=!0,p=!0,q=!0,r=!1,s=!1,t=a.utils.state(),u=null,v=null,w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),x=250;f.orient("bottom").tickPadding(7),g.orient(r?"right":"left"),j.valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)});var y=a.utils.renderWatch(w,x),z=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},A=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){j.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),b.dispatch=w,b.lines=e,b.legend=h,b.xAxis=f,b.yAxis=g,b.interactiveLayer=i,b.tooltip=j,b.dispatch=w,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return p},set:function(a){p=a}},showYAxis:{get:function(){return q},set:function(a){q=a}},defaultState:{get:function(){return u},set:function(a){u=a}},noData:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x),e.duration(x),f.duration(x),g.duration(x)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),h.color(l),e.color(l)}},rightAlignYAxis:{get:function(){return r},set:function(a){r=a,g.orient(r?"right":"left")}},useInteractiveGuideline:{get:function(){return s},set:function(a){s=a,s&&(e.interactive(!1),e.useVoronoi(!1))}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.linePlusBarChart=function(){"use strict";function b(v){return v.each(function(v){function J(a){var b=+("e"==a),c=b?1:-1,d=X/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function S(){u.empty()||u.extent(I),kb.data([u.empty()?e.domain():I]).each(function(a){var b=e(a[0])-e.range()[0],c=e.range()[1]-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>c?0:c)})}function T(){I=u.empty()?null:u.extent(),c=u.empty()?e.domain():u.extent(),K.brush({extent:c,brush:u}),S(),l.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),j.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var b=db.select(".nv-focus .nv-barsWrap").datum(Z.length?Z.map(function(a){return{key:a.key,values:a.values.filter(function(a,b){return l.x()(a,b)>=c[0]&&l.x()(a,b)<=c[1]})}}):[{values:[]}]),h=db.select(".nv-focus .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$.map(function(a){return{area:a.area,fillOpacity:a.fillOpacity,key:a.key,values:a.values.filter(function(a,b){return j.x()(a,b)>=c[0]&&j.x()(a,b)<=c[1]})}}));d=Z.length?l.xScale():j.xScale(),n.scale(d)._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-W,0),n.domain([Math.ceil(c[0]),Math.floor(c[1])]),db.select(".nv-x.nv-axis").transition().duration(L).call(n),b.transition().duration(L).call(l),h.transition().duration(L).call(j),db.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),p.scale(f)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(-V,0),q.scale(g)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(Z.length?0:-V,0),db.select(".nv-focus .nv-y1.nv-axis").style("opacity",Z.length?1:0),db.select(".nv-focus .nv-y2.nv-axis").style("opacity",$.length&&!$[0].disabled?1:0).attr("transform","translate("+d.range()[1]+",0)"),db.select(".nv-focus .nv-y1.nv-axis").transition().duration(L).call(p),db.select(".nv-focus .nv-y2.nv-axis").transition().duration(L).call(q)}var U=d3.select(this);a.utils.initSVG(U);var V=a.utils.availableWidth(y,U,w),W=a.utils.availableHeight(z,U,w)-(E?H:0),X=H-x.top-x.bottom;if(b.update=function(){U.transition().duration(L).call(b)},b.container=this,M.setter(R(v),b.update).getter(Q(v)).update(),M.disabled=v.map(function(a){return!!a.disabled}),!N){var Y;N={};for(Y in M)N[Y]=M[Y]instanceof Array?M[Y].slice(0):M[Y]}if(!(v&&v.length&&v.filter(function(a){return a.values.length}).length))return a.utils.noData(b,U),b;U.selectAll(".nv-noData").remove();var Z=v.filter(function(a){return!a.disabled&&a.bar}),$=v.filter(function(a){return!a.bar});d=l.xScale(),e=o.scale(),f=l.yScale(),g=j.yScale(),h=m.yScale(),i=k.yScale();var _=v.filter(function(a){return!a.disabled&&a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})}),ab=v.filter(function(a){return!a.disabled&&!a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})});d.range([0,V]),e.domain(d3.extent(d3.merge(_.concat(ab)),function(a){return a.x})).range([0,V]);var bb=U.selectAll("g.nv-wrap.nv-linePlusBar").data([v]),cb=bb.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),db=bb.select("g");cb.append("g").attr("class","nv-legendWrap");var eb=cb.append("g").attr("class","nv-focus");eb.append("g").attr("class","nv-x nv-axis"),eb.append("g").attr("class","nv-y1 nv-axis"),eb.append("g").attr("class","nv-y2 nv-axis"),eb.append("g").attr("class","nv-barsWrap"),eb.append("g").attr("class","nv-linesWrap");var fb=cb.append("g").attr("class","nv-context");if(fb.append("g").attr("class","nv-x nv-axis"),fb.append("g").attr("class","nv-y1 nv-axis"),fb.append("g").attr("class","nv-y2 nv-axis"),fb.append("g").attr("class","nv-barsWrap"),fb.append("g").attr("class","nv-linesWrap"),fb.append("g").attr("class","nv-brushBackground"),fb.append("g").attr("class","nv-x nv-brush"),D){var gb=t.align()?V/2:V,hb=t.align()?gb:0;t.width(gb),db.select(".nv-legendWrap").datum(v.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(a.bar?O:P),a})).call(t),w.top!=t.height()&&(w.top=t.height(),W=a.utils.availableHeight(z,U,w)-H),db.select(".nv-legendWrap").attr("transform","translate("+hb+","+-w.top+")")}bb.attr("transform","translate("+w.left+","+w.top+")"),db.select(".nv-context").style("display",E?"initial":"none"),m.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),k.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var ib=db.select(".nv-context .nv-barsWrap").datum(Z.length?Z:[{values:[]}]),jb=db.select(".nv-context .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$);db.select(".nv-context").attr("transform","translate(0,"+(W+w.bottom+x.top)+")"),ib.transition().call(m),jb.transition().call(k),G&&(o._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-X,0),db.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+h.range()[0]+")"),db.select(".nv-context .nv-x.nv-axis").transition().call(o)),F&&(r.scale(h)._ticks(X/36).tickSize(-V,0),s.scale(i)._ticks(X/36).tickSize(Z.length?0:-V,0),db.select(".nv-context .nv-y3.nv-axis").style("opacity",Z.length?1:0).attr("transform","translate(0,"+e.range()[0]+")"),db.select(".nv-context .nv-y2.nv-axis").style("opacity",$.length?1:0).attr("transform","translate("+e.range()[1]+",0)"),db.select(".nv-context .nv-y1.nv-axis").transition().call(r),db.select(".nv-context .nv-y2.nv-axis").transition().call(s)),u.x(e).on("brush",T),I&&u.extent(I);var kb=db.select(".nv-brushBackground").selectAll("g").data([I||u.extent()]),lb=kb.enter().append("g");lb.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",X),lb.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",X);var mb=db.select(".nv-x.nv-brush").call(u);mb.selectAll("rect").attr("height",X),mb.selectAll(".resize").append("path").attr("d",J),t.dispatch.on("stateChange",function(a){for(var c in a)M[c]=a[c];K.stateChange(M),b.update()}),K.on("changeState",function(a){"undefined"!=typeof a.disabled&&(v.forEach(function(b,c){b.disabled=a.disabled[c]}),M.disabled=a.disabled),b.update()}),T()}),b}var c,d,e,f,g,h,i,j=a.models.line(),k=a.models.line(),l=a.models.historicalBar(),m=a.models.historicalBar(),n=a.models.axis(),o=a.models.axis(),p=a.models.axis(),q=a.models.axis(),r=a.models.axis(),s=a.models.axis(),t=a.models.legend(),u=d3.svg.brush(),v=a.models.tooltip(),w={top:30,right:30,bottom:30,left:60},x={top:0,right:30,bottom:20,left:60},y=null,z=null,A=function(a){return a.x},B=function(a){return a.y},C=a.utils.defaultColor(),D=!0,E=!0,F=!1,G=!0,H=50,I=null,J=null,K=d3.dispatch("brush","stateChange","changeState"),L=0,M=a.utils.state(),N=null,O=" (left axis)",P=" (right axis)";j.clipEdge(!0),k.interactive(!1),n.orient("bottom").tickPadding(5),p.orient("left"),q.orient("right"),o.orient("bottom").tickPadding(5),r.orient("left"),s.orient("right"),v.headerEnabled(!0).headerFormatter(function(a,b){return n.tickFormat()(a,b)});var Q=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},R=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return j.dispatch.on("elementMouseover.tooltip",function(a){v.duration(100).valueFormatter(function(a,b){return q.tickFormat()(a,b)}).data(a).position(a.pos).hidden(!1)}),j.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={value:b.y()(a.data),color:a.color},v.duration(0).valueFormatter(function(a,b){return p.tickFormat()(a,b)}).data(a).hidden(!1)}),l.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMousemove.tooltip",function(){v.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=K,b.legend=t,b.lines=j,b.lines2=k,b.bars=l,b.bars2=m,b.xAxis=n,b.x2Axis=o,b.y1Axis=p,b.y2Axis=q,b.y3Axis=r,b.y4Axis=s,b.tooltip=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return y},set:function(a){y=a}},height:{get:function(){return z},set:function(a){z=a}},showLegend:{get:function(){return D},set:function(a){D=a}},brushExtent:{get:function(){return I},set:function(a){I=a}},noData:{get:function(){return J},set:function(a){J=a}},focusEnable:{get:function(){return E},set:function(a){E=a}},focusHeight:{get:function(){return H},set:function(a){H=a}},focusShowAxisX:{get:function(){return G},set:function(a){G=a}},focusShowAxisY:{get:function(){return F},set:function(a){F=a}},legendLeftAxisHint:{get:function(){return O},set:function(a){O=a}},legendRightAxisHint:{get:function(){return P},set:function(a){P=a}},tooltips:{get:function(){return v.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),v.enabled(!!b)}},tooltipContent:{get:function(){return v.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),v.contentGenerator(b)}},margin:{get:function(){return w},set:function(a){w.top=void 0!==a.top?a.top:w.top,w.right=void 0!==a.right?a.right:w.right,w.bottom=void 0!==a.bottom?a.bottom:w.bottom,w.left=void 0!==a.left?a.left:w.left}},duration:{get:function(){return L},set:function(a){L=a}},color:{get:function(){return C},set:function(b){C=a.utils.getColor(b),t.color(C)}},x:{get:function(){return A},set:function(a){A=a,j.x(a),k.x(a),l.x(a),m.x(a)}},y:{get:function(){return B},set:function(a){B=a,j.y(a),k.y(a),l.y(a),m.y(a)}}}),a.utils.inheritOptions(b,j),a.utils.initOptions(b),b},a.models.lineWithFocusChart=function(){"use strict";function b(o){return o.each(function(o){function z(a){var b=+("e"==a),c=b?1:-1,d=M/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function G(){n.empty()||n.extent(y),U.data([n.empty()?e.domain():y]).each(function(a){var b=e(a[0])-c.range()[0],d=K-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>d?0:d)})}function H(){y=n.empty()?null:n.extent();var a=n.empty()?e.domain():n.extent();if(!(Math.abs(a[0]-a[1])<=1)){A.brush({extent:a,brush:n}),G();var b=Q.select(".nv-focus .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}).map(function(b){return{key:b.key,area:b.area,values:b.values.filter(function(b,c){return g.x()(b,c)>=a[0]&&g.x()(b,c)<=a[1]})}}));b.transition().duration(B).call(g),Q.select(".nv-focus .nv-x.nv-axis").transition().duration(B).call(i),Q.select(".nv-focus .nv-y.nv-axis").transition().duration(B).call(j)}}var I=d3.select(this),J=this;a.utils.initSVG(I);var K=a.utils.availableWidth(t,I,q),L=a.utils.availableHeight(u,I,q)-v,M=v-r.top-r.bottom;if(b.update=function(){I.transition().duration(B).call(b)},b.container=this,C.setter(F(o),b.update).getter(E(o)).update(),C.disabled=o.map(function(a){return!!a.disabled}),!D){var N;D={};for(N in C)D[N]=C[N]instanceof Array?C[N].slice(0):C[N]}if(!(o&&o.length&&o.filter(function(a){return a.values.length}).length))return a.utils.noData(b,I),b;I.selectAll(".nv-noData").remove(),c=g.xScale(),d=g.yScale(),e=h.xScale(),f=h.yScale();var O=I.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([o]),P=O.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),Q=O.select("g");P.append("g").attr("class","nv-legendWrap");var R=P.append("g").attr("class","nv-focus");R.append("g").attr("class","nv-x nv-axis"),R.append("g").attr("class","nv-y nv-axis"),R.append("g").attr("class","nv-linesWrap"),R.append("g").attr("class","nv-interactive");var S=P.append("g").attr("class","nv-context");S.append("g").attr("class","nv-x nv-axis"),S.append("g").attr("class","nv-y nv-axis"),S.append("g").attr("class","nv-linesWrap"),S.append("g").attr("class","nv-brushBackground"),S.append("g").attr("class","nv-x nv-brush"),x&&(m.width(K),Q.select(".nv-legendWrap").datum(o).call(m),q.top!=m.height()&&(q.top=m.height(),L=a.utils.availableHeight(u,I,q)-v),Q.select(".nv-legendWrap").attr("transform","translate(0,"+-q.top+")")),O.attr("transform","translate("+q.left+","+q.top+")"),w&&(p.width(K).height(L).margin({left:q.left,top:q.top}).svgContainer(I).xScale(c),O.select(".nv-interactive").call(p)),g.width(K).height(L).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),h.defined(g.defined()).width(K).height(M).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),Q.select(".nv-context").attr("transform","translate(0,"+(L+q.bottom+r.top)+")");var T=Q.select(".nv-context .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}));d3.transition(T).call(h),i.scale(c)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-L,0),j.scale(d)._ticks(a.utils.calcTicksY(L/36,o)).tickSize(-K,0),Q.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L+")"),n.x(e).on("brush",function(){H()}),y&&n.extent(y);var U=Q.select(".nv-brushBackground").selectAll("g").data([y||n.extent()]),V=U.enter().append("g");V.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),V.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var W=Q.select(".nv-x.nv-brush").call(n);W.selectAll("rect").attr("height",M),W.selectAll(".resize").append("path").attr("d",z),H(),k.scale(e)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-M,0),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),d3.transition(Q.select(".nv-context .nv-x.nv-axis")).call(k),l.scale(f)._ticks(a.utils.calcTicksY(M/36,o)).tickSize(-K,0),d3.transition(Q.select(".nv-context .nv-y.nv-axis")).call(l),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),m.dispatch.on("stateChange",function(a){for(var c in a)C[c]=a[c];A.stateChange(C),b.update()}),p.dispatch.on("elementMousemove",function(c){g.clearHighlights();var d,f,h,k=[];if(o.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(i,j){var l=n.empty()?e.domain():n.extent(),m=i.values.filter(function(a,b){return g.x()(a,b)>=l[0]&&g.x()(a,b)<=l[1]});f=a.interactiveBisect(m,c.pointXValue,g.x());var o=m[f],p=b.y()(o,f);null!=p&&g.highlightPoint(j,f,!0),void 0!==o&&(void 0===d&&(d=o),void 0===h&&(h=b.xScale()(b.x()(o,f))),k.push({key:i.key,value:b.y()(o,f),color:s(i,i.seriesIndex)}))}),k.length>2){var l=b.yScale().invert(c.mouseY),m=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),r=.03*m,t=a.nearestValueIndex(k.map(function(a){return a.value}),l,r);null!==t&&(k[t].highlight=!0)}var u=i.tickFormat()(b.x()(d,f));p.tooltip.position({left:c.mouseX+q.left,top:c.mouseY+q.top}).chartContainer(J.parentNode).valueFormatter(function(a){return null==a?"N/A":j.tickFormat()(a)}).data({value:u,index:f,series:k})(),p.renderGuideLine(h)}),p.dispatch.on("elementMouseout",function(){g.clearHighlights()}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&o.forEach(function(b,c){b.disabled=a.disabled[c]}),b.update()})}),b}var c,d,e,f,g=a.models.line(),h=a.models.line(),i=a.models.axis(),j=a.models.axis(),k=a.models.axis(),l=a.models.axis(),m=a.models.legend(),n=d3.svg.brush(),o=a.models.tooltip(),p=a.interactiveGuideline(),q={top:30,right:30,bottom:30,left:60},r={top:0,right:30,bottom:20,left:60},s=a.utils.defaultColor(),t=null,u=null,v=50,w=!1,x=!0,y=null,z=null,A=d3.dispatch("brush","stateChange","changeState"),B=250,C=a.utils.state(),D=null;g.clipEdge(!0).duration(0),h.interactive(!1),i.orient("bottom").tickPadding(5),j.orient("left"),k.orient("bottom").tickPadding(5),l.orient("left"),o.valueFormatter(function(a,b){return j.tickFormat()(a,b)}).headerFormatter(function(a,b){return i.tickFormat()(a,b)});var E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return g.dispatch.on("elementMouseover.tooltip",function(a){o.data(a).position(a.pos).hidden(!1)}),g.dispatch.on("elementMouseout.tooltip",function(){o.hidden(!0)}),b.dispatch=A,b.legend=m,b.lines=g,b.lines2=h,b.xAxis=i,b.yAxis=j,b.x2Axis=k,b.y2Axis=l,b.interactiveLayer=p,b.tooltip=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return t},set:function(a){t=a}},height:{get:function(){return u},set:function(a){u=a}},focusHeight:{get:function(){return v},set:function(a){v=a}},showLegend:{get:function(){return x},set:function(a){x=a}},brushExtent:{get:function(){return y},set:function(a){y=a}},defaultState:{get:function(){return D},set:function(a){D=a}},noData:{get:function(){return z},set:function(a){z=a}},tooltips:{get:function(){return o.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),o.enabled(!!b)}},tooltipContent:{get:function(){return o.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),o.contentGenerator(b)}},margin:{get:function(){return q},set:function(a){q.top=void 0!==a.top?a.top:q.top,q.right=void 0!==a.right?a.right:q.right,q.bottom=void 0!==a.bottom?a.bottom:q.bottom,q.left=void 0!==a.left?a.left:q.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b),m.color(s)}},interpolate:{get:function(){return g.interpolate()},set:function(a){g.interpolate(a),h.interpolate(a)}},xTickFormat:{get:function(){return i.tickFormat()},set:function(a){i.tickFormat(a),k.tickFormat(a)}},yTickFormat:{get:function(){return j.tickFormat()},set:function(a){j.tickFormat(a),l.tickFormat(a)}},duration:{get:function(){return B},set:function(a){B=a,j.duration(B),l.duration(B),i.duration(B),k.duration(B)}},x:{get:function(){return g.x()},set:function(a){g.x(a),h.x(a)}},y:{get:function(){return g.y()},set:function(a){g.y(a),h.y(a)}},useInteractiveGuideline:{get:function(){return w},set:function(a){w=a,w&&(g.interactive(!1),g.useVoronoi(!1))}}}),a.utils.inheritOptions(b,g),a.utils.initOptions(b),b},a.models.multiBar=function(){"use strict";function b(E){return C.reset(),E.each(function(b){var E=k-j.left-j.right,F=l-j.top-j.bottom;p=d3.select(this),a.utils.initSVG(p);var G=0;if(x&&b.length&&(x=[{values:b[0].values.map(function(a){return{x:a.x,y:0,series:a.series,size:.01}})}]),u){var H=d3.layout.stack().offset(v).values(function(a){return a.values}).y(r)(!b.length&&x?x:b);H.forEach(function(a,c){a.nonStackable?(b[c].nonStackableSeries=G++,H[c]=b[c]):c>0&&H[c-1].nonStackable&&H[c].values.map(function(a,b){a.y0-=H[c-1].values[b].y,a.y1=a.y0+a.y})}),b=H}b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),u&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a,f){if(!b[f].nonStackable){var g=a.values[c];g.size=Math.abs(g.y),g.y<0?(g.y1=e,e-=g.size):(g.y1=g.size+d,d+=g.size)}})});var I=d&&e?[]:b.map(function(a,b){return a.values.map(function(a,c){return{x:q(a,c),y:r(a,c),y0:a.y0,y1:a.y1,idx:b}})});m.domain(d||d3.merge(I).map(function(a){return a.x})).rangeBands(f||[0,E],A),n.domain(e||d3.extent(d3.merge(I).map(function(a){var c=a.y;return u&&!b[a.idx].nonStackable&&(c=a.y>0?a.y1:a.y1+a.y),c}).concat(s))).range(g||[F,0]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]+.01*n.domain()[0],n.domain()[1]-.01*n.domain()[1]]:[-1,1]),h=h||m,i=i||n;var J=p.selectAll("g.nv-wrap.nv-multibar").data([b]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),L=K.append("defs"),M=K.append("g"),N=J.select("g");M.append("g").attr("class","nv-groups"),J.attr("transform","translate("+j.left+","+j.top+")"),L.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),J.select("#nv-edge-clip-"+o+" rect").attr("width",E).attr("height",F),N.attr("clip-path",t?"url(#nv-edge-clip-"+o+")":"");var O=J.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});O.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);var P=C.transition(O.exit().selectAll("rect.nv-bar"),"multibarExit",Math.min(100,z)).attr("y",function(a){var c=i(0)||0;return u&&b[a.series]&&!b[a.series].nonStackable&&(c=i(a.y0)),c}).attr("height",0).remove();P.delay&&P.delay(function(a,b){var c=b*(z/(D+1))-b;return c}),O.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return w(a,b)}).style("stroke",function(a,b){return w(a,b)}),O.style("stroke-opacity",1).style("fill-opacity",.75);var Q=O.selectAll("rect.nv-bar").data(function(a){return x&&!b.length?x.values:a.values});Q.exit().remove();Q.enter().append("rect").attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(a,c,d){return u&&!b[d].nonStackable?0:d*m.rangeBand()/b.length}).attr("y",function(a,c,d){return i(u&&!b[d].nonStackable?a.y0:0)||0}).attr("height",0).attr("width",function(a,c,d){return m.rangeBand()/(u&&!b[d].nonStackable?1:b.length)}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"});Q.style("fill",function(a,b,c){return w(a,c,b)}).style("stroke",function(a,b,c){return w(a,c,b)}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),B.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),B.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){B.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){B.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){B.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),Q.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"}),y&&(c||(c=b.map(function(){return!0})),Q.style("fill",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}));var R=Q.watchTransition(C,"multibar",Math.min(250,z)).delay(function(a,c){return c*z/b[0].values.length});u?R.attr("y",function(a,c,d){var e=0;return e=b[d].nonStackable?r(a,c)<0?n(0):n(0)-n(r(a,c))<-1?n(0)-1:n(r(a,c))||0:n(a.y1)}).attr("height",function(a,c,d){return b[d].nonStackable?Math.max(Math.abs(n(r(a,c))-n(0)),1)||0:Math.max(Math.abs(n(a.y+a.y0)-n(a.y0)),1)}).attr("x",function(a,c,d){var e=0;return b[d].nonStackable&&(e=a.series*m.rangeBand()/b.length,b.length!==G&&(e=b[d].nonStackableSeries*m.rangeBand()/(2*G))),e}).attr("width",function(a,c,d){if(b[d].nonStackable){var e=m.rangeBand()/G;return b.length!==G&&(e=m.rangeBand()/(2*G)),e}return m.rangeBand()}):R.attr("x",function(a){return a.series*m.rangeBand()/b.length}).attr("width",m.rangeBand()/b.length).attr("y",function(a,b){return r(a,b)<0?n(0):n(0)-n(r(a,b))<1?n(0)-1:n(r(a,b))||0}).attr("height",function(a,b){return Math.max(Math.abs(n(r(a,b))-n(0)),1)||0}),h=m.copy(),i=n.copy(),b[0]&&b[0].values&&(D=b[0].values.length)}),C.renderEnd("multibar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=d3.scale.ordinal(),n=d3.scale.linear(),o=Math.floor(1e4*Math.random()),p=null,q=function(a){return a.x},r=function(a){return a.y},s=[0],t=!0,u=!1,v="zero",w=a.utils.defaultColor(),x=!1,y=null,z=500,A=.1,B=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),C=a.utils.renderWatch(B,z),D=0;return b.dispatch=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return s},set:function(a){s=a}},stacked:{get:function(){return u},set:function(a){u=a}},stackOffset:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return t},set:function(a){t=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return o},set:function(a){o=a}},hideable:{get:function(){return x},set:function(a){x=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z)}},color:{get:function(){return w},set:function(b){w=a.utils.getColor(b)}},barColor:{get:function(){return y},set:function(b){y=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarChart=function(){"use strict";function b(j){return D.reset(),D.models(e),r&&D.models(f),s&&D.models(g),j.each(function(j){var z=d3.select(this);a.utils.initSVG(z);var D=a.utils.availableWidth(l,z,k),H=a.utils.availableHeight(m,z,k);if(b.update=function(){0===C?z.call(b):z.transition().duration(C).call(b)},b.container=this,x.setter(G(j),b.update).getter(F(j)).update(),x.disabled=j.map(function(a){return!!a.disabled}),!y){var I;y={};for(I in x)y[I]=x[I]instanceof Array?x[I].slice(0):x[I]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,z),b;z.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale(); +var J=z.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([j]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),L=J.select("g");if(K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-legendWrap"),K.append("g").attr("class","nv-controlsWrap"),q&&(h.width(D-B()),L.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),H=a.utils.availableHeight(m,z,k)),L.select(".nv-legendWrap").attr("transform","translate("+B()+","+-k.top+")")),o){var M=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(B()).color(["#444","#444","#444"]),L.select(".nv-controlsWrap").datum(M).attr("transform","translate(0,"+-k.top+")").call(i)}J.attr("transform","translate("+k.left+","+k.top+")"),t&&L.select(".nv-y.nv-axis").attr("transform","translate("+D+",0)"),e.disabled(j.map(function(a){return a.disabled})).width(D).height(H).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var N=L.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(N.call(e),r){f.scale(c)._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-H,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),L.select(".nv-x.nv-axis").call(f);var O=L.select(".nv-x.nv-axis > g").selectAll("g");if(O.selectAll("line, text").style("opacity",1),v){var P=function(a,b){return"translate("+a+","+b+")"},Q=5,R=17;O.selectAll("text").attr("transform",function(a,b,c){return P(0,c%2==0?Q:R)});var S=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;L.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(a,b){return P(0,0===b||S%2!==0?R:Q)})}u&&O.filter(function(a,b){return b%Math.ceil(j[0].values.length/(D/100))!==0}).selectAll("text, line").style("opacity",0),w&&O.selectAll(".tick text").attr("transform","rotate("+w+" 0,0)").style("text-anchor",w>0?"start":"end"),L.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}s&&(g.scale(d)._ticks(a.utils.calcTicksY(H/36,j)).tickSize(-D,0),L.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)x[c]=a[c];A.stateChange(x),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(M=M.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":case p.grouped:e.stacked(!1);break;case"Stacked":case p.stacked:e.stacked(!0)}x.stacked=e.stacked(),A.stateChange(x),b.update()}}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),x.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),x.stacked=a.stacked,E=a.stacked),b.update()})}),D.renderEnd("multibarchart immediate"),b}var c,d,e=a.models.multiBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=0,x=a.utils.state(),y=null,z=null,A=d3.dispatch("stateChange","changeState","renderEnd"),B=function(){return o?180:0},C=250;x.stacked=!1,e.stacked(!1),f.orient("bottom").tickPadding(7).showMaxMin(!1).tickFormat(function(a){return a}),g.orient(t?"right":"left").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var D=a.utils.renderWatch(A),E=!1,F=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:E}}},G=function(a){return function(b){void 0!==b.stacked&&(E=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=A,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=x,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return y},set:function(a){y=a}},noData:{get:function(){return z},set:function(a){z=a}},reduceXTicks:{get:function(){return u},set:function(a){u=a}},rotateLabels:{get:function(){return w},set:function(a){w=a}},staggerLabels:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return C},set:function(a){C=a,e.duration(C),f.duration(C),g.duration(C),D.reset(C)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiBarHorizontal=function(){"use strict";function b(m){return E.reset(),m.each(function(b){var m=k-j.left-j.right,C=l-j.top-j.bottom;n=d3.select(this),a.utils.initSVG(n),w&&(b=d3.layout.stack().offset("zero").values(function(a){return a.values}).y(r)(b)),b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),w&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a){var b=a.values[c];b.size=Math.abs(b.y),b.y<0?(b.y1=e-b.size,e-=b.size):(b.y1=d,d+=b.size)})});var F=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:q(a,b),y:r(a,b),y0:a.y0,y1:a.y1}})});o.domain(d||d3.merge(F).map(function(a){return a.x})).rangeBands(f||[0,C],A),p.domain(e||d3.extent(d3.merge(F).map(function(a){return w?a.y>0?a.y1+a.y:a.y1:a.y}).concat(t))),p.range(x&&!w?g||[p.domain()[0]<0?z:0,m-(p.domain()[1]>0?z:0)]:g||[0,m]),h=h||o,i=i||d3.scale.linear().domain(p.domain()).range([p(0),p(0)]);{var G=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([b]),H=G.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),I=(H.append("defs"),H.append("g"));G.select("g")}I.append("g").attr("class","nv-groups"),G.attr("transform","translate("+j.left+","+j.top+")");var J=G.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});J.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),J.exit().watchTransition(E,"multibarhorizontal: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),J.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return u(a,b)}).style("stroke",function(a,b){return u(a,b)}),J.watchTransition(E,"multibarhorizontal: groups").style("stroke-opacity",1).style("fill-opacity",.75);var K=J.selectAll("g.nv-bar").data(function(a){return a.values});K.exit().remove();var L=K.enter().append("g").attr("transform",function(a,c,d){return"translate("+i(w?a.y0:0)+","+(w?0:d*o.rangeBand()/b.length+o(q(a,c)))+")"});L.append("rect").attr("width",0).attr("height",o.rangeBand()/(w?1:b.length)),K.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),D.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){D.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){D.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){D.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),s(b[0],0)&&(L.append("polyline"),K.select("polyline").attr("fill","none").attr("points",function(a,c){var d=s(a,c),e=.8*o.rangeBand()/(2*(w?1:b.length));d=d.length?d:[-Math.abs(d),Math.abs(d)],d=d.map(function(a){return p(a)-p(0)});var f=[[d[0],-e],[d[0],e],[d[0],0],[d[1],0],[d[1],-e],[d[1],e]];return f.map(function(a){return a.join(",")}).join(" ")}).attr("transform",function(a,c){var d=o.rangeBand()/(2*(w?1:b.length));return"translate("+(r(a,c)<0?0:p(r(a,c))-p(0))+", "+d+")"})),L.append("text"),x&&!w?(K.select("text").attr("text-anchor",function(a,b){return r(a,b)<0?"end":"start"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){var c=B(r(a,b)),d=s(a,b);return void 0===d?c:d.length?c+"+"+B(Math.abs(d[1]))+"-"+B(Math.abs(d[0])):c+"±"+B(Math.abs(d))}),K.watchTransition(E,"multibarhorizontal: bars").select("text").attr("x",function(a,b){return r(a,b)<0?-4:p(r(a,b))-p(0)+4})):K.selectAll("text").text(""),y&&!w?(L.append("text").classed("nv-bar-label",!0),K.select("text.nv-bar-label").attr("text-anchor",function(a,b){return r(a,b)<0?"start":"end"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){return q(a,b)}),K.watchTransition(E,"multibarhorizontal: bars").select("text.nv-bar-label").attr("x",function(a,b){return r(a,b)<0?p(0)-p(r(a,b))+4:-4})):K.selectAll("text.nv-bar-label").text(""),K.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}),v&&(c||(c=b.map(function(){return!0})),K.style("fill",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()})),w?K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,b){return"translate("+p(a.y1)+","+o(q(a,b))+")"}).select("rect").attr("width",function(a,b){return Math.abs(p(r(a,b)+a.y0)-p(a.y0))}).attr("height",o.rangeBand()):K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,c){return"translate("+p(r(a,c)<0?r(a,c):0)+","+(a.series*o.rangeBand()/b.length+o(q(a,c)))+")"}).select("rect").attr("height",o.rangeBand()/b.length).attr("width",function(a,b){return Math.max(Math.abs(p(r(a,b))-p(0)),1)}),h=o.copy(),i=p.copy()}),E.renderEnd("multibarHorizontal immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=null,o=d3.scale.ordinal(),p=d3.scale.linear(),q=function(a){return a.x},r=function(a){return a.y},s=function(a){return a.yErr},t=[0],u=a.utils.defaultColor(),v=null,w=!1,x=!1,y=!1,z=60,A=.1,B=d3.format(",.2f"),C=250,D=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),E=a.utils.renderWatch(D,C);return b.dispatch=D,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},yErr:{get:function(){return s},set:function(a){s=a}},xScale:{get:function(){return o},set:function(a){o=a}},yScale:{get:function(){return p},set:function(a){p=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return t},set:function(a){t=a}},stacked:{get:function(){return w},set:function(a){w=a}},showValues:{get:function(){return x},set:function(a){x=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return m},set:function(a){m=a}},valueFormat:{get:function(){return B},set:function(a){B=a}},valuePadding:{get:function(){return z},set:function(a){z=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return C},set:function(a){C=a,E.reset(C)}},color:{get:function(){return u},set:function(b){u=a.utils.getColor(b)}},barColor:{get:function(){return v},set:function(b){v=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarHorizontalChart=function(){"use strict";function b(j){return C.reset(),C.models(e),r&&C.models(f),s&&C.models(g),j.each(function(j){var w=d3.select(this);a.utils.initSVG(w);var C=a.utils.availableWidth(l,w,k),D=a.utils.availableHeight(m,w,k);if(b.update=function(){w.transition().duration(z).call(b)},b.container=this,t=e.stacked(),u.setter(B(j),b.update).getter(A(j)).update(),u.disabled=j.map(function(a){return!!a.disabled}),!v){var E;v={};for(E in u)v[E]=u[E]instanceof Array?u[E].slice(0):u[E]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,w),b;w.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var F=w.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([j]),G=F.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),H=F.select("g");if(G.append("g").attr("class","nv-x nv-axis"),G.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),G.append("g").attr("class","nv-barsWrap"),G.append("g").attr("class","nv-legendWrap"),G.append("g").attr("class","nv-controlsWrap"),q&&(h.width(C-y()),H.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),D=a.utils.availableHeight(m,w,k)),H.select(".nv-legendWrap").attr("transform","translate("+y()+","+-k.top+")")),o){var I=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(y()).color(["#444","#444","#444"]),H.select(".nv-controlsWrap").datum(I).attr("transform","translate(0,"+-k.top+")").call(i)}F.attr("transform","translate("+k.left+","+k.top+")"),e.disabled(j.map(function(a){return a.disabled})).width(C).height(D).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var J=H.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(J.transition().call(e),r){f.scale(c)._ticks(a.utils.calcTicksY(D/24,j)).tickSize(-C,0),H.select(".nv-x.nv-axis").call(f);var K=H.select(".nv-x.nv-axis").selectAll("g");K.selectAll("line, text")}s&&(g.scale(d)._ticks(a.utils.calcTicksX(C/100,j)).tickSize(-D,0),H.select(".nv-y.nv-axis").attr("transform","translate(0,"+D+")"),H.select(".nv-y.nv-axis").call(g)),H.select(".nv-zeroLine line").attr("x1",d(0)).attr("x2",d(0)).attr("y1",0).attr("y2",-D),h.dispatch.on("stateChange",function(a){for(var c in a)u[c]=a[c];x.stateChange(u),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(I=I.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":e.stacked(!1);break;case"Stacked":e.stacked(!0)}u.stacked=e.stacked(),x.stateChange(u),t=e.stacked(),b.update()}}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),u.stacked=a.stacked,t=a.stacked),b.update()})}),C.renderEnd("multibar horizontal chart immediate"),b}var c,d,e=a.models.multiBarHorizontal(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend().height(30),i=a.models.legend().height(30),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=a.utils.state(),v=null,w=null,x=d3.dispatch("stateChange","changeState","renderEnd"),y=function(){return o?180:0},z=250;u.stacked=!1,e.stacked(t),f.orient("left").tickPadding(5).showMaxMin(!1).tickFormat(function(a){return a}),g.orient("bottom").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var A=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:t}}},B=function(a){return function(b){void 0!==b.stacked&&(t=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},C=a.utils.renderWatch(x,z);return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=x,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=u,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z),e.duration(z),f.duration(z),g.duration(z)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiChart=function(){"use strict";function b(j){return j.each(function(j){function k(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.value=a.point.x,a.series={value:a.point.y,color:a.point.color},B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function l(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.point.x=v.x()(a.point),a.point.y=v.y()(a.point),B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function n(a){var b=2===j[a.data.series].yAxis?z:y;a.value=t.x()(a.data),a.series={value:t.y()(a.data),color:a.color},B.duration(0).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).hidden(!1)}var C=d3.select(this);a.utils.initSVG(C),b.update=function(){C.transition().call(b)},b.container=this;var D=a.utils.availableWidth(g,C,e),E=a.utils.availableHeight(h,C,e),F=j.filter(function(a){return"line"==a.type&&1==a.yAxis}),G=j.filter(function(a){return"line"==a.type&&2==a.yAxis}),H=j.filter(function(a){return"bar"==a.type&&1==a.yAxis}),I=j.filter(function(a){return"bar"==a.type&&2==a.yAxis}),J=j.filter(function(a){return"area"==a.type&&1==a.yAxis}),K=j.filter(function(a){return"area"==a.type&&2==a.yAxis});if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,C),b;C.selectAll(".nv-noData").remove();var L=j.filter(function(a){return!a.disabled&&1==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})}),M=j.filter(function(a){return!a.disabled&&2==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})});o.domain(d3.extent(d3.merge(L.concat(M)),function(a){return a.x})).range([0,D]);var N=C.selectAll("g.wrap.multiChart").data([j]),O=N.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y1 nv-axis"),O.append("g").attr("class","nv-y2 nv-axis"),O.append("g").attr("class","lines1Wrap"),O.append("g").attr("class","lines2Wrap"),O.append("g").attr("class","bars1Wrap"),O.append("g").attr("class","bars2Wrap"),O.append("g").attr("class","stack1Wrap"),O.append("g").attr("class","stack2Wrap"),O.append("g").attr("class","legendWrap");var P=N.select("g"),Q=j.map(function(a,b){return j[b].color||f(a,b)});if(i){var R=A.align()?D/2:D,S=A.align()?R:0;A.width(R),A.color(Q),P.select(".legendWrap").datum(j.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(1==a.yAxis?"":" (right axis)"),a})).call(A),e.top!=A.height()&&(e.top=A.height(),E=a.utils.availableHeight(h,C,e)),P.select(".legendWrap").attr("transform","translate("+S+","+-e.top+")")}r.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"line"==j[b].type})),s.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"line"==j[b].type})),t.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"bar"==j[b].type})),u.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"bar"==j[b].type})),v.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"area"==j[b].type})),w.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"area"==j[b].type})),P.attr("transform","translate("+e.left+","+e.top+")");var T=P.select(".lines1Wrap").datum(F.filter(function(a){return!a.disabled})),U=P.select(".bars1Wrap").datum(H.filter(function(a){return!a.disabled})),V=P.select(".stack1Wrap").datum(J.filter(function(a){return!a.disabled})),W=P.select(".lines2Wrap").datum(G.filter(function(a){return!a.disabled})),X=P.select(".bars2Wrap").datum(I.filter(function(a){return!a.disabled})),Y=P.select(".stack2Wrap").datum(K.filter(function(a){return!a.disabled})),Z=J.length?J.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[],$=K.length?K.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[];p.domain(c||d3.extent(d3.merge(L).concat(Z),function(a){return a.y})).range([0,E]),q.domain(d||d3.extent(d3.merge(M).concat($),function(a){return a.y})).range([0,E]),r.yDomain(p.domain()),t.yDomain(p.domain()),v.yDomain(p.domain()),s.yDomain(q.domain()),u.yDomain(q.domain()),w.yDomain(q.domain()),J.length&&d3.transition(V).call(v),K.length&&d3.transition(Y).call(w),H.length&&d3.transition(U).call(t),I.length&&d3.transition(X).call(u),F.length&&d3.transition(T).call(r),G.length&&d3.transition(W).call(s),x._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-E,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+E+")"),d3.transition(P.select(".nv-x.nv-axis")).call(x),y._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y1.nv-axis")).call(y),z._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y2.nv-axis")).call(z),P.select(".nv-y1.nv-axis").classed("nv-disabled",L.length?!1:!0).attr("transform","translate("+o.range()[0]+",0)"),P.select(".nv-y2.nv-axis").classed("nv-disabled",M.length?!1:!0).attr("transform","translate("+o.range()[1]+",0)"),A.dispatch.on("stateChange",function(){b.update()}),r.dispatch.on("elementMouseover.tooltip",k),s.dispatch.on("elementMouseover.tooltip",k),r.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),s.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),v.dispatch.on("elementMouseover.tooltip",l),w.dispatch.on("elementMouseover.tooltip",l),v.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),w.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMouseover.tooltip",n),u.dispatch.on("elementMouseover.tooltip",n),t.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),u.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()}),u.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()})}),b}var c,d,e={top:30,right:20,bottom:50,left:60},f=a.utils.defaultColor(),g=null,h=null,i=!0,j=null,k=function(a){return a.x},l=function(a){return a.y},m="monotone",n=!0,o=d3.scale.linear(),p=d3.scale.linear(),q=d3.scale.linear(),r=a.models.line().yScale(p),s=a.models.line().yScale(q),t=a.models.multiBar().stacked(!1).yScale(p),u=a.models.multiBar().stacked(!1).yScale(q),v=a.models.stackedArea().yScale(p),w=a.models.stackedArea().yScale(q),x=a.models.axis().scale(o).orient("bottom").tickPadding(5),y=a.models.axis().scale(p).orient("left"),z=a.models.axis().scale(q).orient("right"),A=a.models.legend().height(30),B=a.models.tooltip(),C=d3.dispatch();return b.dispatch=C,b.lines1=r,b.lines2=s,b.bars1=t,b.bars2=u,b.stack1=v,b.stack2=w,b.xAxis=x,b.yAxis1=y,b.yAxis2=z,b.tooltip=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},showLegend:{get:function(){return i},set:function(a){i=a}},yDomain1:{get:function(){return c},set:function(a){c=a}},yDomain2:{get:function(){return d},set:function(a){d=a}},noData:{get:function(){return j},set:function(a){j=a}},interpolate:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return B.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),B.enabled(!!b)}},tooltipContent:{get:function(){return B.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),B.contentGenerator(b)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return f},set:function(b){f=a.utils.getColor(b)}},x:{get:function(){return k},set:function(a){k=a,r.x(a),s.x(a),t.x(a),u.x(a),v.x(a),w.x(a)}},y:{get:function(){return l},set:function(a){l=a,r.y(a),s.y(a),v.y(a),w.y(a),t.y(a),u.y(a)}},useVoronoi:{get:function(){return n},set:function(a){n=a,r.useVoronoi(a),s.useVoronoi(a),v.useVoronoi(a),w.useVoronoi(a)}}}),a.utils.initOptions(b),b},a.models.ohlcBar=function(){"use strict";function b(y){return y.each(function(b){k=d3.select(this);var y=a.utils.availableWidth(h,k,g),A=a.utils.availableHeight(i,k,g);a.utils.initSVG(k);var B=y/b[0].values.length*.9;l.domain(c||d3.extent(b[0].values.map(n).concat(t))),l.range(v?e||[.5*y/b[0].values.length,y*(b[0].values.length-.5)/b[0].values.length]:e||[5+B/2,y-B/2-5]),m.domain(d||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(f||[A,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var C=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([b[0].values]),D=C.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),E=D.append("defs"),F=D.append("g"),G=C.select("g");F.append("g").attr("class","nv-ticks"),C.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:j})}),E.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),C.select("#nv-chart-clip-path-"+j+" rect").attr("width",y).attr("height",A),G.attr("clip-path",w?"url(#nv-chart-clip-path-"+j+")":"");var H=C.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});H.exit().remove(),H.enter().append("path").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}).attr("d",function(a,b){return"m0,0l0,"+(m(p(a,b))-m(r(a,b)))+"l"+-B/2+",0l"+B/2+",0l0,"+(m(s(a,b))-m(p(a,b)))+"l0,"+(m(q(a,b))-m(s(a,b)))+"l"+B/2+",0l"+-B/2+",0z"}).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("fill",function(){return x[0]}).attr("stroke",function(){return x[0]}).attr("x",0).attr("y",function(a,b){return m(Math.max(0,o(a,b)))}).attr("height",function(a,b){return Math.abs(m(o(a,b))-m(0))}),H.attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}),d3.transition(H).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("d",function(a,c){var d=y/b[0].values.length*.9;return"m0,0l0,"+(m(p(a,c))-m(r(a,c)))+"l"+-d/2+",0l"+d/2+",0l0,"+(m(s(a,c))-m(p(a,c)))+"l0,"+(m(q(a,c))-m(s(a,c)))+"l"+d/2+",0l"+-d/2+",0z"})}),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,c){b.clearHighlights(),k.select(".nv-ohlcBar .nv-tick-0-"+a).classed("hover",c)},b.clearHighlights=function(){k.select(".nv-ohlcBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!=a.top?a.top:g.top,g.right=void 0!=a.right?a.right:g.right,g.bottom=void 0!=a.bottom?a.bottom:g.bottom,g.left=void 0!=a.left?a.left:g.left +}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.parallelCoordinates=function(){"use strict";function b(p){return p.each(function(b){function p(a){return F(h.map(function(b){if(isNaN(a[b])||isNaN(parseFloat(a[b]))){var c=g[b].domain(),d=g[b].range(),e=c[0]-(c[1]-c[0])/9;if(J.indexOf(b)<0){var h=d3.scale.linear().domain([e,c[1]]).range([x-12,d[1]]);g[b].brush.y(h),J.push(b)}return[f(b),g[b](e)]}return J.length>0?(D.style("display","inline"),E.style("display","inline")):(D.style("display","none"),E.style("display","none")),[f(b),g[b](a[b])]}))}function q(){var a=h.filter(function(a){return!g[a].brush.empty()}),b=a.map(function(a){return g[a].brush.extent()});k=[],a.forEach(function(a,c){k[c]={dimension:a,extent:b[c]}}),l=[],M.style("display",function(c){var d=a.every(function(a,d){return isNaN(c[a])&&b[d][0]==g[a].brush.y().domain()[0]?!0:b[d][0]<=c[a]&&c[a]<=b[d][1]});return d&&l.push(c),d?null:"none"}),o.brush({filters:k,active:l})}function r(a){m[a]=this.parentNode.__origin__=f(a),L.attr("visibility","hidden")}function s(a){m[a]=Math.min(w,Math.max(0,this.parentNode.__origin__+=d3.event.x)),M.attr("d",p),h.sort(function(a,b){return u(a)-u(b)}),f.domain(h),N.attr("transform",function(a){return"translate("+u(a)+")"})}function t(a){delete this.parentNode.__origin__,delete m[a],d3.select(this.parentNode).attr("transform","translate("+f(a)+")"),M.attr("d",p),L.attr("d",p).attr("visibility",null)}function u(a){var b=m[a];return null==b?f(a):b}var v=d3.select(this),w=a.utils.availableWidth(d,v,c),x=a.utils.availableHeight(e,v,c);a.utils.initSVG(v),l=b,f.rangePoints([0,w],1).domain(h);var y={};h.forEach(function(a){var c=d3.extent(b,function(b){return+b[a]});return y[a]=!1,void 0===c[0]&&(y[a]=!0,c[0]=0,c[1]=0),c[0]===c[1]&&(c[0]=c[0]-1,c[1]=c[1]+1),g[a]=d3.scale.linear().domain(c).range([.9*(x-12),0]),g[a].brush=d3.svg.brush().y(g[a]).on("brush",q),"name"!=a});var z=v.selectAll("g.nv-wrap.nv-parallelCoordinates").data([b]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-parallelCoordinates"),B=A.append("g"),C=z.select("g");B.append("g").attr("class","nv-parallelCoordinates background"),B.append("g").attr("class","nv-parallelCoordinates foreground"),B.append("g").attr("class","nv-parallelCoordinates missingValuesline"),z.attr("transform","translate("+c.left+","+c.top+")");var D,E,F=d3.svg.line().interpolate("cardinal").tension(n),G=d3.svg.axis().orient("left"),H=d3.behavior.drag().on("dragstart",r).on("drag",s).on("dragend",t),I=f.range()[1]-f.range()[0],J=[],K=[0+I/2,x-12,w-I/2,x-12];D=z.select(".missingValuesline").selectAll("line").data([K]),D.enter().append("line"),D.exit().remove(),D.attr("x1",function(a){return a[0]}).attr("y1",function(a){return a[1]}).attr("x2",function(a){return a[2]}).attr("y2",function(a){return a[3]}),E=z.select(".missingValuesline").selectAll("text").data(["undefined values"]),E.append("text").data(["undefined values"]),E.enter().append("text"),E.exit().remove(),E.attr("y",x).attr("x",w-92-I/2).text(function(a){return a});var L=z.select(".background").selectAll("path").data(b);L.enter().append("path"),L.exit().remove(),L.attr("d",p);var M=z.select(".foreground").selectAll("path").data(b);M.enter().append("path"),M.exit().remove(),M.attr("d",p).attr("stroke",j),M.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),o.elementMouseover({label:a.name,data:a.data,index:b,pos:[d3.mouse(this.parentNode)[0],d3.mouse(this.parentNode)[1]]})}),M.on("mouseout",function(a,b){d3.select(this).classed("hover",!1),o.elementMouseout({label:a.name,data:a.data,index:b})});var N=C.selectAll(".dimension").data(h),O=N.enter().append("g").attr("class","nv-parallelCoordinates dimension");O.append("g").attr("class","nv-parallelCoordinates nv-axis"),O.append("g").attr("class","nv-parallelCoordinates-brush"),O.append("text").attr("class","nv-parallelCoordinates nv-label"),N.attr("transform",function(a){return"translate("+f(a)+",0)"}),N.exit().remove(),N.select(".nv-label").style("cursor","move").attr("dy","-1em").attr("text-anchor","middle").text(String).on("mouseover",function(a){o.elementMouseover({dim:a,pos:[d3.mouse(this.parentNode.parentNode)[0],d3.mouse(this.parentNode.parentNode)[1]]})}).on("mouseout",function(a){o.elementMouseout({dim:a})}).call(H),N.select(".nv-axis").each(function(a,b){d3.select(this).call(G.scale(g[a]).tickFormat(d3.format(i[b])))}),N.select(".nv-parallelCoordinates-brush").each(function(a){d3.select(this).call(g[a].brush)}).selectAll("rect").attr("x",-8).attr("width",16)}),b}var c={top:30,right:0,bottom:10,left:0},d=null,e=null,f=d3.scale.ordinal(),g={},h=[],i=[],j=a.utils.defaultColor(),k=[],l=[],m=[],n=1,o=d3.dispatch("brush","elementMouseover","elementMouseout");return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},dimensionNames:{get:function(){return h},set:function(a){h=a}},dimensionFormats:{get:function(){return i},set:function(a){i=a}},lineTension:{get:function(){return n},set:function(a){n=a}},dimensions:{get:function(){return h},set:function(b){a.deprecated("dimensions","use dimensionNames instead"),h=b}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.pie=function(){"use strict";function b(E){return D.reset(),E.each(function(b){function E(a,b){a.endAngle=isNaN(a.endAngle)?0:a.endAngle,a.startAngle=isNaN(a.startAngle)?0:a.startAngle,p||(a.innerRadius=0);var c=d3.interpolate(this._current,a);return this._current=c(0),function(a){return B[b](c(a))}}var F=d-c.left-c.right,G=e-c.top-c.bottom,H=Math.min(F,G)/2,I=[],J=[];if(i=d3.select(this),0===z.length)for(var K=H-H/5,L=y*H,M=0;Mc)return"";if("function"==typeof n)d=n(a,b,{key:f(a.data),value:g(a.data),percent:k(c)});else switch(n){case"key":d=f(a.data);break;case"value":d=k(g(a.data));break;case"percent":d=d3.format("%")(c)}return d})}}),D.renderEnd("pie immediate"),b}var c={top:0,right:0,bottom:0,left:0},d=500,e=500,f=function(a){return a.x},g=function(a){return a.y},h=Math.floor(1e4*Math.random()),i=null,j=a.utils.defaultColor(),k=d3.format(",.2f"),l=!0,m=!1,n="key",o=.02,p=!1,q=!1,r=!0,s=0,t=!1,u=!1,v=!1,w=!1,x=0,y=.5,z=[],A=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),B=[],C=[],D=a.utils.renderWatch(A);return b.dispatch=A,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{arcsRadius:{get:function(){return z},set:function(a){z=a}},width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},showLabels:{get:function(){return l},set:function(a){l=a}},title:{get:function(){return q},set:function(a){q=a}},titleOffset:{get:function(){return s},set:function(a){s=a}},labelThreshold:{get:function(){return o},set:function(a){o=a}},valueFormat:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return h},set:function(a){h=a}},endAngle:{get:function(){return w},set:function(a){w=a}},startAngle:{get:function(){return u},set:function(a){u=a}},padAngle:{get:function(){return v},set:function(a){v=a}},cornerRadius:{get:function(){return x},set:function(a){x=a}},donutRatio:{get:function(){return y},set:function(a){y=a}},labelsOutside:{get:function(){return m},set:function(a){m=a}},labelSunbeamLayout:{get:function(){return t},set:function(a){t=a}},donut:{get:function(){return p},set:function(a){p=a}},growOnHover:{get:function(){return r},set:function(a){r=a}},pieLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("pieLabelsOutside","use labelsOutside instead")}},donutLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("donutLabelsOutside","use labelsOutside instead")}},labelFormat:{get:function(){return k},set:function(b){k=b,a.deprecated("labelFormat","use valueFormat instead")}},margin:{get:function(){return c},set:function(a){c.top="undefined"!=typeof a.top?a.top:c.top,c.right="undefined"!=typeof a.right?a.right:c.right,c.bottom="undefined"!=typeof a.bottom?a.bottom:c.bottom,c.left="undefined"!=typeof a.left?a.left:c.left}},y:{get:function(){return g},set:function(a){g=d3.functor(a)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},labelType:{get:function(){return n},set:function(a){n=a||"key"}}}),a.utils.initOptions(b),b},a.models.pieChart=function(){"use strict";function b(e){return q.reset(),q.models(c),e.each(function(e){var k=d3.select(this);a.utils.initSVG(k);var n=a.utils.availableWidth(g,k,f),o=a.utils.availableHeight(h,k,f);if(b.update=function(){k.transition().call(b)},b.container=this,l.setter(s(e),b.update).getter(r(e)).update(),l.disabled=e.map(function(a){return!!a.disabled}),!m){var q;m={};for(q in l)m[q]=l[q]instanceof Array?l[q].slice(0):l[q]}if(!e||!e.length)return a.utils.noData(b,k),b;k.selectAll(".nv-noData").remove();var t=k.selectAll("g.nv-wrap.nv-pieChart").data([e]),u=t.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),v=t.select("g");if(u.append("g").attr("class","nv-pieWrap"),u.append("g").attr("class","nv-legendWrap"),i)if("top"===j)d.width(n).key(c.x()),t.select(".nv-legendWrap").datum(e).call(d),f.top!=d.height()&&(f.top=d.height(),o=a.utils.availableHeight(h,k,f)),t.select(".nv-legendWrap").attr("transform","translate(0,"+-f.top+")");else if("right"===j){var w=a.models.legend().width();w>n/2&&(w=n/2),d.height(o).key(c.x()),d.width(w),n-=d.width(),t.select(".nv-legendWrap").datum(e).call(d).attr("transform","translate("+n+",0)")}t.attr("transform","translate("+f.left+","+f.top+")"),c.width(n).height(o);var x=v.select(".nv-pieWrap").datum([e]);d3.transition(x).call(c),d.dispatch.on("stateChange",function(a){for(var c in a)l[c]=a[c];p.stateChange(l),b.update()}),p.on("changeState",function(a){"undefined"!=typeof a.disabled&&(e.forEach(function(b,c){b.disabled=a.disabled[c]}),l.disabled=a.disabled),b.update()})}),q.renderEnd("pieChart immediate"),b}var c=a.models.pie(),d=a.models.legend(),e=a.models.tooltip(),f={top:30,right:20,bottom:20,left:20},g=null,h=null,i=!0,j="top",k=a.utils.defaultColor(),l=a.utils.state(),m=null,n=null,o=250,p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd");e.headerEnabled(!1).duration(0).valueFormatter(function(a,b){return c.valueFormat()(a,b)});var q=a.utils.renderWatch(p),r=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},s=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},e.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){e.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){e.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.legend=d,b.dispatch=p,b.pie=c,b.tooltip=e,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return i},set:function(a){i=a}},legendPosition:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return e.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),e.enabled(!!b)}},tooltipContent:{get:function(){return e.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),e.contentGenerator(b)}},color:{get:function(){return k},set:function(a){k=a,d.color(k),c.color(k)}},duration:{get:function(){return o},set:function(a){o=a,q.reset(o)}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.scatter=function(){"use strict";function b(N){return P.reset(),N.each(function(b){function N(){if(O=!1,!w)return!1;if(M===!0){var a=d3.merge(b.map(function(a,b){return a.values.map(function(a,c){var d=p(a,c),e=q(a,c);return[m(d)+1e-4*Math.random(),n(e)+1e-4*Math.random(),b,c,a]}).filter(function(a,b){return x(a[4],b)})}));if(0==a.length)return!1;a.length<3&&(a.push([m.range()[0]-20,n.range()[0]-20,null,null]),a.push([m.range()[1]+20,n.range()[1]+20,null,null]),a.push([m.range()[0]-20,n.range()[0]+20,null,null]),a.push([m.range()[1]+20,n.range()[1]-20,null,null]));var c=d3.geom.polygon([[-10,-10],[-10,i+10],[h+10,i+10],[h+10,-10]]),d=d3.geom.voronoi(a).map(function(b,d){return{data:c.clip(b),series:a[d][2],point:a[d][3]}});U.select(".nv-point-paths").selectAll("path").remove();var e=U.select(".nv-point-paths").selectAll("path").data(d),f=e.enter().append("svg:path").attr("d",function(a){return a&&a.data&&0!==a.data.length?"M"+a.data.join(",")+"Z":"M 0 0"}).attr("id",function(a,b){return"nv-path-"+b}).attr("clip-path",function(a,b){return"url(#nv-clip-"+b+")"});C&&f.style("fill",d3.rgb(230,230,230)).style("fill-opacity",.4).style("stroke-opacity",1).style("stroke",d3.rgb(200,200,200)),B&&(U.select(".nv-point-clips").selectAll("clipPath").remove(),U.select(".nv-point-clips").selectAll("clipPath").data(a).enter().append("svg:clipPath").attr("id",function(a,b){return"nv-clip-"+b}).append("svg:circle").attr("cx",function(a){return a[0]}).attr("cy",function(a){return a[1]}).attr("r",D));var k=function(a,c){if(O)return 0;var d=b[a.series];if(void 0!==d){var e=d.values[a.point];e.color=j(d,a.series),e.x=p(e),e.y=q(e);var f=l.node().getBoundingClientRect(),h=window.pageYOffset||document.documentElement.scrollTop,i=window.pageXOffset||document.documentElement.scrollLeft,k={left:m(p(e,a.point))+f.left+i+g.left+10,top:n(q(e,a.point))+f.top+h+g.top+10};c({point:e,series:d,pos:k,seriesIndex:a.series,pointIndex:a.point})}};e.on("click",function(a){k(a,L.elementClick)}).on("dblclick",function(a){k(a,L.elementDblClick)}).on("mouseover",function(a){k(a,L.elementMouseover)}).on("mouseout",function(a){k(a,L.elementMouseout)})}else U.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("dblclick",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementDblClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("mouseover",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseover({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c,color:j(a,c)})}).on("mouseout",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseout({point:e,series:d,seriesIndex:a.series,pointIndex:c,color:j(a,c)})})}l=d3.select(this);var R=a.utils.availableWidth(h,l,g),S=a.utils.availableHeight(i,l,g);a.utils.initSVG(l),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var T=E&&F&&I?[]:d3.merge(b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),size:r(a,b)}})}));m.domain(E||d3.extent(T.map(function(a){return a.x}).concat(t))),m.range(y&&b[0]?G||[(R*z+R)/(2*b[0].values.length),R-R*(1+z)/(2*b[0].values.length)]:G||[0,R]),n.domain(F||d3.extent(T.map(function(a){return a.y}).concat(u))).range(H||[S,0]),o.domain(I||d3.extent(T.map(function(a){return a.size}).concat(v))).range(J||Q),K=m.domain()[0]===m.domain()[1]||n.domain()[0]===n.domain()[1],m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]-.01*n.domain()[0],n.domain()[1]+.01*n.domain()[1]]:[-1,1]),isNaN(m.domain()[0])&&m.domain([-1,1]),isNaN(n.domain()[0])&&n.domain([-1,1]),c=c||m,d=d||n,e=e||o;var U=l.selectAll("g.nv-wrap.nv-scatter").data([b]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+k),W=V.append("defs"),X=V.append("g"),Y=U.select("g");U.classed("nv-single-point",K),X.append("g").attr("class","nv-groups"),X.append("g").attr("class","nv-point-paths"),V.append("g").attr("class","nv-point-clips"),U.attr("transform","translate("+g.left+","+g.top+")"),W.append("clipPath").attr("id","nv-edge-clip-"+k).append("rect"),U.select("#nv-edge-clip-"+k+" rect").attr("width",R).attr("height",S>0?S:0),Y.attr("clip-path",A?"url(#nv-edge-clip-"+k+")":""),O=!0;var Z=U.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});Z.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),Z.exit().remove(),Z.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),Z.watchTransition(P,"scatter: groups").style("fill",function(a,b){return j(a,b)}).style("stroke",function(a,b){return j(a,b)}).style("stroke-opacity",1).style("fill-opacity",.5);var $=Z.selectAll("path.nv-point").data(function(a){return a.values.map(function(a,b){return[a,b]}).filter(function(a,b){return x(a[0],b)})});$.enter().append("path").style("fill",function(a){return a.color}).style("stroke",function(a){return a.color}).attr("transform",function(a){return"translate("+c(p(a[0],a[1]))+","+d(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),$.exit().remove(),Z.exit().selectAll("path.nv-point").watchTransition(P,"scatter exit").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).remove(),$.each(function(a){d3.select(this).classed("nv-point",!0).classed("nv-point-"+a[1],!0).classed("nv-noninteractive",!w).classed("hover",!1)}),$.watchTransition(P,"scatter points").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),clearTimeout(f),f=setTimeout(N,300),c=m.copy(),d=n.copy(),e=o.copy()}),P.renderEnd("scatter immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=a.utils.defaultColor(),k=Math.floor(1e5*Math.random()),l=null,m=d3.scale.linear(),n=d3.scale.linear(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=function(a){return a.size||1},s=function(a){return a.shape||"circle"},t=[],u=[],v=[],w=!0,x=function(a){return!a.notActive},y=!1,z=.1,A=!1,B=!0,C=!1,D=function(){return 25},E=null,F=null,G=null,H=null,I=null,J=null,K=!1,L=d3.dispatch("elementClick","elementDblClick","elementMouseover","elementMouseout","renderEnd"),M=!0,N=250,O=!1,P=a.utils.renderWatch(L,N),Q=[16,256];return b.dispatch=L,b.options=a.utils.optionsFunc.bind(b),b._calls=new function(){this.clearHighlights=function(){return a.dom.write(function(){l.selectAll(".nv-point.hover").classed("hover",!1)}),null},this.highlightPoint=function(b,c,d){a.dom.write(function(){l.select(" .nv-series-"+b+" .nv-point-"+c).classed("hover",d)})}},L.on("elementMouseover.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!0)}),L.on("elementMouseout.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!1)}),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},pointScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return E},set:function(a){E=a}},yDomain:{get:function(){return F},set:function(a){F=a}},pointDomain:{get:function(){return I},set:function(a){I=a}},xRange:{get:function(){return G},set:function(a){G=a}},yRange:{get:function(){return H},set:function(a){H=a}},pointRange:{get:function(){return J},set:function(a){J=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},forcePoint:{get:function(){return v},set:function(a){v=a}},interactive:{get:function(){return w},set:function(a){w=a}},pointActive:{get:function(){return x},set:function(a){x=a}},padDataOuter:{get:function(){return z},set:function(a){z=a}},padData:{get:function(){return y},set:function(a){y=a}},clipEdge:{get:function(){return A},set:function(a){A=a}},clipVoronoi:{get:function(){return B},set:function(a){B=a}},clipRadius:{get:function(){return D},set:function(a){D=a}},showVoronoi:{get:function(){return C},set:function(a){C=a}},id:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return p},set:function(a){p=d3.functor(a)}},y:{get:function(){return q},set:function(a){q=d3.functor(a)}},pointSize:{get:function(){return r},set:function(a){r=d3.functor(a)}},pointShape:{get:function(){return s},set:function(a){s=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},duration:{get:function(){return N},set:function(a){N=a,P.reset(N)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},useVoronoi:{get:function(){return M},set:function(a){M=a,M===!1&&(B=!1)}}}),a.utils.initOptions(b),b},a.models.scatterChart=function(){"use strict";function b(z){return D.reset(),D.models(c),t&&D.models(d),u&&D.models(e),q&&D.models(g),r&&D.models(h),z.each(function(z){m=d3.select(this),a.utils.initSVG(m);var G=a.utils.availableWidth(k,m,j),H=a.utils.availableHeight(l,m,j);if(b.update=function(){0===A?m.call(b):m.transition().duration(A).call(b)},b.container=this,w.setter(F(z),b.update).getter(E(z)).update(),w.disabled=z.map(function(a){return!!a.disabled}),!x){var I;x={};for(I in w)x[I]=w[I]instanceof Array?w[I].slice(0):w[I]}if(!(z&&z.length&&z.filter(function(a){return a.values.length}).length))return a.utils.noData(b,m),D.renderEnd("scatter immediate"),b;m.selectAll(".nv-noData").remove(),o=c.xScale(),p=c.yScale();var J=m.selectAll("g.nv-wrap.nv-scatterChart").data([z]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+c.id()),L=K.append("g"),M=J.select("g");if(L.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),L.append("g").attr("class","nv-x nv-axis"),L.append("g").attr("class","nv-y nv-axis"),L.append("g").attr("class","nv-scatterWrap"),L.append("g").attr("class","nv-regressionLinesWrap"),L.append("g").attr("class","nv-distWrap"),L.append("g").attr("class","nv-legendWrap"),v&&M.select(".nv-y.nv-axis").attr("transform","translate("+G+",0)"),s){var N=G;f.width(N),J.select(".nv-legendWrap").datum(z).call(f),j.top!=f.height()&&(j.top=f.height(),H=a.utils.availableHeight(l,m,j)),J.select(".nv-legendWrap").attr("transform","translate(0,"+-j.top+")")}J.attr("transform","translate("+j.left+","+j.top+")"),c.width(G).height(H).color(z.map(function(a,b){return a.color=a.color||n(a,b),a.color}).filter(function(a,b){return!z[b].disabled})),J.select(".nv-scatterWrap").datum(z.filter(function(a){return!a.disabled})).call(c),J.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+c.id()+")");var O=J.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(a){return a});O.enter().append("g").attr("class","nv-regLines");var P=O.selectAll(".nv-regLine").data(function(a){return[a]});P.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0),P.filter(function(a){return a.intercept&&a.slope}).watchTransition(D,"scatterPlusLineChart: regline").attr("x1",o.range()[0]).attr("x2",o.range()[1]).attr("y1",function(a){return p(o.domain()[0]*a.slope+a.intercept)}).attr("y2",function(a){return p(o.domain()[1]*a.slope+a.intercept)}).style("stroke",function(a,b,c){return n(a,c)}).style("stroke-opacity",function(a){return a.disabled||"undefined"==typeof a.slope||"undefined"==typeof a.intercept?0:1}),t&&(d.scale(o)._ticks(a.utils.calcTicksX(G/100,z)).tickSize(-H,0),M.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(d)),u&&(e.scale(p)._ticks(a.utils.calcTicksY(H/36,z)).tickSize(-G,0),M.select(".nv-y.nv-axis").call(e)),q&&(g.getData(c.x()).scale(o).width(G).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),M.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(z.filter(function(a){return!a.disabled})).call(g)),r&&(h.getData(c.y()).scale(p).width(H).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),M.select(".nv-distributionY").attr("transform","translate("+(v?G:-h.size())+",0)").datum(z.filter(function(a){return!a.disabled})).call(h)),f.dispatch.on("stateChange",function(a){for(var c in a)w[c]=a[c];y.stateChange(w),b.update()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&(z.forEach(function(b,c){b.disabled=a.disabled[c]}),w.disabled=a.disabled),b.update()}),c.dispatch.on("elementMouseout.tooltip",function(a){i.hidden(!0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",h.size())}),c.dispatch.on("elementMouseover.tooltip",function(a){m.select(".nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",a.pos.top-H-j.top),m.select(".nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",a.pos.left+g.size()-j.left),i.position(a.pos).data(a).hidden(!1)}),B=o.copy(),C=p.copy()}),D.renderEnd("scatter with line immediate"),b}var c=a.models.scatter(),d=a.models.axis(),e=a.models.axis(),f=a.models.legend(),g=a.models.distribution(),h=a.models.distribution(),i=a.models.tooltip(),j={top:30,right:20,bottom:50,left:75},k=null,l=null,m=null,n=a.utils.defaultColor(),o=c.xScale(),p=c.yScale(),q=!1,r=!1,s=!0,t=!0,u=!0,v=!1,w=a.utils.state(),x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=null,A=250;c.xScale(o).yScale(p),d.orient("bottom").tickPadding(10),e.orient(v?"right":"left").tickPadding(10),g.axis("x"),h.axis("y"),i.headerFormatter(function(a,b){return d.tickFormat()(a,b)}).valueFormatter(function(a,b){return e.tickFormat()(a,b)});var B,C,D=a.utils.renderWatch(y,A),E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return b.dispatch=y,b.scatter=c,b.legend=f,b.xAxis=d,b.yAxis=e,b.distX=g,b.distY=h,b.tooltip=i,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},container:{get:function(){return m},set:function(a){m=a}},showDistX:{get:function(){return q},set:function(a){q=a}},showDistY:{get:function(){return r},set:function(a){r=a}},showLegend:{get:function(){return s},set:function(a){s=a}},showXAxis:{get:function(){return t},set:function(a){t=a}},showYAxis:{get:function(){return u},set:function(a){u=a}},defaultState:{get:function(){return x},set:function(a){x=a}},noData:{get:function(){return z},set:function(a){z=a}},duration:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return i.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),i.enabled(!!b) +}},tooltipContent:{get:function(){return i.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),i.contentGenerator(b)}},tooltipXContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},tooltipYContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},rightAlignYAxis:{get:function(){return v},set:function(a){v=a,e.orient(a?"right":"left")}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),f.color(n),g.color(n),h.color(n)}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.sparkline=function(){"use strict";function b(k){return k.each(function(b){var k=h-g.left-g.right,q=i-g.top-g.bottom;j=d3.select(this),a.utils.initSVG(j),l.domain(c||d3.extent(b,n)).range(e||[0,k]),m.domain(d||d3.extent(b,o)).range(f||[q,0]);{var r=j.selectAll("g.nv-wrap.nv-sparkline").data([b]),s=r.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline");s.append("g"),r.select("g")}r.attr("transform","translate("+g.left+","+g.top+")");var t=r.selectAll("path").data(function(a){return[a]});t.enter().append("path"),t.exit().remove(),t.style("stroke",function(a,b){return a.color||p(a,b)}).attr("d",d3.svg.line().x(function(a,b){return l(n(a,b))}).y(function(a,b){return m(o(a,b))}));var u=r.selectAll("circle.nv-point").data(function(a){function b(b){if(-1!=b){var c=a[b];return c.pointIndex=b,c}return null}var c=a.map(function(a,b){return o(a,b)}),d=b(c.lastIndexOf(m.domain()[1])),e=b(c.indexOf(m.domain()[0])),f=b(c.length-1);return[e,d,f].filter(function(a){return null!=a})});u.enter().append("circle"),u.exit().remove(),u.attr("cx",function(a){return l(n(a,a.pointIndex))}).attr("cy",function(a){return m(o(a,a.pointIndex))}).attr("r",2).attr("class",function(a){return n(a,a.pointIndex)==l.domain()[1]?"nv-point nv-currentValue":o(a,a.pointIndex)==m.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),b}var c,d,e,f,g={top:2,right:0,bottom:2,left:0},h=400,i=32,j=null,k=!0,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=a.utils.getColor(["#000"]);return b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},animate:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return n},set:function(a){n=d3.functor(a)}},y:{get:function(){return o},set:function(a){o=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return p},set:function(b){p=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sparklinePlus=function(){"use strict";function b(p){return p.each(function(p){function q(){if(!j){var a=z.selectAll(".nv-hoverValue").data(i),b=a.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);a.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),a.attr("transform",function(a){return"translate("+c(e.x()(p[a],a))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1),i.length&&(b.append("line").attr("x1",0).attr("y1",-f.top).attr("x2",0).attr("y2",u),b.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-f.top).attr("text-anchor","end").attr("dy",".9em"),z.select(".nv-hoverValue .nv-xValue").text(k(e.x()(p[i[0]],i[0]))),b.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-f.top).attr("text-anchor","start").attr("dy",".9em"),z.select(".nv-hoverValue .nv-yValue").text(l(e.y()(p[i[0]],i[0]))))}}function r(){function a(a,b){for(var c=Math.abs(e.x()(a[0],0)-b),d=0,f=0;fc;++c){for(b=0,d=0;bb;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=0}for(c=0;f>c;++c)g[c]=0;return g}}),u.renderEnd("stackedArea immediate"),b}var c,d,e={top:0,right:0,bottom:0,left:0},f=960,g=500,h=a.utils.defaultColor(),i=Math.floor(1e5*Math.random()),j=null,k=function(a){return a.x},l=function(a){return a.y},m="stack",n="zero",o="default",p="linear",q=!1,r=a.models.scatter(),s=250,t=d3.dispatch("areaClick","areaMouseover","areaMouseout","renderEnd","elementClick","elementMouseover","elementMouseout");r.pointSize(2.2).pointDomain([2.2,2.2]);var u=a.utils.renderWatch(t,s);return b.dispatch=t,b.scatter=r,r.dispatch.on("elementClick",function(){t.elementClick.apply(this,arguments)}),r.dispatch.on("elementMouseover",function(){t.elementMouseover.apply(this,arguments)}),r.dispatch.on("elementMouseout",function(){t.elementMouseout.apply(this,arguments)}),b.interpolate=function(a){return arguments.length?(p=a,b):p},b.duration=function(a){return arguments.length?(s=a,u.reset(s),r.duration(s),b):s},b.dispatch=t,b.scatter=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return f},set:function(a){f=a}},height:{get:function(){return g},set:function(a){g=a}},clipEdge:{get:function(){return q},set:function(a){q=a}},offset:{get:function(){return n},set:function(a){n=a}},order:{get:function(){return o},set:function(a){o=a}},interpolate:{get:function(){return p},set:function(a){p=a}},x:{get:function(){return k},set:function(a){k=d3.functor(a)}},y:{get:function(){return l},set:function(a){l=d3.functor(a)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return h},set:function(b){h=a.utils.getColor(b)}},style:{get:function(){return m},set:function(a){switch(m=a){case"stack":b.offset("zero"),b.order("default");break;case"stream":b.offset("wiggle"),b.order("inside-out");break;case"stream-center":b.offset("silhouette"),b.order("inside-out");break;case"expand":b.offset("expand"),b.order("default");break;case"stack_percent":b.offset(b.d3_stackedOffset_stackPercent),b.order("default")}}},duration:{get:function(){return s},set:function(a){s=a,u.reset(s),r.duration(s)}}}),a.utils.inheritOptions(b,r),a.utils.initOptions(b),b},a.models.stackedAreaChart=function(){"use strict";function b(k){return F.reset(),F.models(e),r&&F.models(f),s&&F.models(g),k.each(function(k){var x=d3.select(this),F=this;a.utils.initSVG(x);var K=a.utils.availableWidth(m,x,l),L=a.utils.availableHeight(n,x,l);if(b.update=function(){x.transition().duration(C).call(b)},b.container=this,v.setter(I(k),b.update).getter(H(k)).update(),v.disabled=k.map(function(a){return!!a.disabled}),!w){var M;w={};for(M in v)w[M]=v[M]instanceof Array?v[M].slice(0):v[M]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(b,x),b;x.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var N=x.selectAll("g.nv-wrap.nv-stackedAreaChart").data([k]),O=N.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),P=N.select("g");if(O.append("rect").style("opacity",0),O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y nv-axis"),O.append("g").attr("class","nv-stackedWrap"),O.append("g").attr("class","nv-legendWrap"),O.append("g").attr("class","nv-controlsWrap"),O.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",K).attr("height",L),q){var Q=p?K-z:K;h.width(Q),P.select(".nv-legendWrap").datum(k).call(h),l.top!=h.height()&&(l.top=h.height(),L=a.utils.availableHeight(n,x,l)),P.select(".nv-legendWrap").attr("transform","translate("+(K-Q)+","+-l.top+")")}if(p){var R=[{key:B.stacked||"Stacked",metaKey:"Stacked",disabled:"stack"!=e.style(),style:"stack"},{key:B.stream||"Stream",metaKey:"Stream",disabled:"stream"!=e.style(),style:"stream"},{key:B.expanded||"Expanded",metaKey:"Expanded",disabled:"expand"!=e.style(),style:"expand"},{key:B.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:"stack_percent"!=e.style(),style:"stack_percent"}];z=A.length/3*260,R=R.filter(function(a){return-1!==A.indexOf(a.metaKey)}),i.width(z).color(["#444","#444","#444"]),P.select(".nv-controlsWrap").datum(R).call(i),l.top!=Math.max(i.height(),h.height())&&(l.top=Math.max(i.height(),h.height()),L=a.utils.availableHeight(n,x,l)),P.select(".nv-controlsWrap").attr("transform","translate(0,"+-l.top+")")}N.attr("transform","translate("+l.left+","+l.top+")"),t&&P.select(".nv-y.nv-axis").attr("transform","translate("+K+",0)"),u&&(j.width(K).height(L).margin({left:l.left,top:l.top}).svgContainer(x).xScale(c),N.select(".nv-interactive").call(j)),e.width(K).height(L);var S=P.select(".nv-stackedWrap").datum(k);if(S.transition().call(e),r&&(f.scale(c)._ticks(a.utils.calcTicksX(K/100,k)).tickSize(-L,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+L+")"),P.select(".nv-x.nv-axis").transition().duration(0).call(f)),s){var T;if(T="wiggle"===e.offset()?0:a.utils.calcTicksY(L/36,k),g.scale(d)._ticks(T).tickSize(-K,0),"expand"===e.style()||"stack_percent"===e.style()){var U=g.tickFormat();D&&U===J||(D=U),g.tickFormat(J)}else D&&(g.tickFormat(D),D=null);P.select(".nv-y.nv-axis").transition().duration(0).call(g)}e.dispatch.on("areaClick.toggle",function(a){k.forEach(1===k.filter(function(a){return!a.disabled}).length?function(a){a.disabled=!1}:function(b,c){b.disabled=c!=a.seriesIndex}),v.disabled=k.map(function(a){return!!a.disabled}),y.stateChange(v),b.update()}),h.dispatch.on("stateChange",function(a){for(var c in a)v[c]=a[c];y.stateChange(v),b.update()}),i.dispatch.on("legendClick",function(a){a.disabled&&(R=R.map(function(a){return a.disabled=!0,a}),a.disabled=!1,e.style(a.style),v.style=e.style(),y.stateChange(v),b.update())}),j.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,g,h,i=[];if(k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,j){g=a.interactiveBisect(f.values,c.pointXValue,b.x());var k=f.values[g],l=b.y()(k,g);if(null!=l&&e.highlightPoint(j,g,!0),"undefined"!=typeof k){"undefined"==typeof d&&(d=k),"undefined"==typeof h&&(h=b.xScale()(b.x()(k,g)));var m="expand"==e.style()?k.display.y:b.y()(k,g);i.push({key:f.key,value:m,color:o(f,f.seriesIndex),stackedValue:k.display})}}),i.reverse(),i.length>2){var m=b.yScale().invert(c.mouseY),n=null;i.forEach(function(a,b){m=Math.abs(m);var c=Math.abs(a.stackedValue.y0),d=Math.abs(a.stackedValue.y);return m>=c&&d+c>=m?void(n=b):void 0}),null!=n&&(i[n].highlight=!0)}var p=f.tickFormat()(b.x()(d,g)),q=j.tooltip.valueFormatter();"expand"===e.style()||"stack_percent"===e.style()?(E||(E=q),q=d3.format(".1%")):E&&(q=E,E=null),j.tooltip.position({left:h+l.left,top:c.mouseY+l.top}).chartContainer(F.parentNode).valueFormatter(q).data({value:p,series:i})(),j.renderGuideLine(h)}),j.dispatch.on("elementMouseout",function(){e.clearHighlights()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&k.length===a.disabled.length&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),v.disabled=a.disabled),"undefined"!=typeof a.style&&(e.style(a.style),G=a.style),b.update()})}),F.renderEnd("stacked Area chart immediate"),b}var c,d,e=a.models.stackedArea(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:25,bottom:50,left:60},m=null,n=null,o=a.utils.defaultColor(),p=!0,q=!0,r=!0,s=!0,t=!1,u=!1,v=a.utils.state(),w=null,x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=250,A=["Stacked","Stream","Expanded"],B={},C=250;v.style=e.style(),f.orient("bottom").tickPadding(7),g.orient(t?"right":"left"),k.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)}),j.tooltip.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)});var D=null,E=null;i.updateState(!1);var F=a.utils.renderWatch(y),G=e.style(),H=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),style:e.style()}}},I=function(a){return function(b){void 0!==b.style&&(G=b.style),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},J=d3.format("%");return e.dispatch.on("elementMouseover.tooltip",function(a){a.point.x=e.x()(a.point),a.point.y=e.y()(a.point),k.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),b.dispatch=y,b.stacked=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.interactiveLayer=j,b.tooltip=k,b.dispatch=y,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return w},set:function(a){w=a}},noData:{get:function(){return x},set:function(a){x=a}},showControls:{get:function(){return p},set:function(a){p=a}},controlLabels:{get:function(){return B},set:function(a){B=a}},controlOptions:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},duration:{get:function(){return C},set:function(a){C=a,F.reset(C),e.duration(C),f.duration(C),g.duration(C)}},color:{get:function(){return o},set:function(b){o=a.utils.getColor(b),h.color(o),e.color(o)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},useInteractiveGuideline:{get:function(){return u},set:function(a){u=!!a,b.interactive(!a),b.useVoronoi(!a),e.scatter.interactive(!a)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.sunburst=function(){"use strict";function b(u){return t.reset(),u.each(function(b){function t(a){a.x0=a.x,a.dx0=a.dx}function u(a){var b=d3.interpolate(p.domain(),[a.x,a.x+a.dx]),c=d3.interpolate(q.domain(),[a.y,1]),d=d3.interpolate(q.range(),[a.y?20:0,y]);return function(a,e){return e?function(){return s(a)}:function(e){return p.domain(b(e)),q.domain(c(e)).range(d(e)),s(a)}}}l=d3.select(this);var v,w=a.utils.availableWidth(g,l,f),x=a.utils.availableHeight(h,l,f),y=Math.min(w,x)/2;a.utils.initSVG(l);var z=l.selectAll(".nv-wrap.nv-sunburst").data(b),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburst nv-chart-"+k),B=A.selectAll("nv-sunburst");z.attr("transform","translate("+w/2+","+x/2+")"),l.on("click",function(a,b){o.chartClick({data:a,index:b,pos:d3.event,id:k})}),q.range([0,y]),c=c||b,e=b[0],r.value(j[i]||j.count),v=B.data(r.nodes).enter().append("path").attr("d",s).style("fill",function(a){return m((a.children?a:a.parent).name)}).style("stroke","#FFF").on("click",function(a){d!==c&&c!==a&&(d=c),c=a,v.transition().duration(n).attrTween("d",u(a))}).each(t).on("dblclick",function(a){d.parent==a&&v.transition().duration(n).attrTween("d",u(e))}).each(t).on("mouseover",function(a){d3.select(this).classed("hover",!0).style("opacity",.8),o.elementMouseover({data:a,color:d3.select(this).style("fill")})}).on("mouseout",function(a){d3.select(this).classed("hover",!1).style("opacity",1),o.elementMouseout({data:a})}).on("mousemove",function(a){o.elementMousemove({data:a})})}),t.renderEnd("sunburst immediate"),b}var c,d,e,f={top:0,right:0,bottom:0,left:0},g=null,h=null,i="count",j={count:function(){return 1},size:function(a){return a.size}},k=Math.floor(1e4*Math.random()),l=null,m=a.utils.defaultColor(),n=500,o=d3.dispatch("chartClick","elementClick","elementDblClick","elementMousemove","elementMouseover","elementMouseout","renderEnd"),p=d3.scale.linear().range([0,2*Math.PI]),q=d3.scale.sqrt(),r=d3.layout.partition().sort(null).value(function(){return 1}),s=d3.svg.arc().startAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x)))}).endAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x+a.dx)))}).innerRadius(function(a){return Math.max(0,q(a.y))}).outerRadius(function(a){return Math.max(0,q(a.y+a.dy))}),t=a.utils.renderWatch(o);return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},mode:{get:function(){return i},set:function(a){i=a}},id:{get:function(){return k},set:function(a){k=a}},duration:{get:function(){return n},set:function(a){n=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!=a.top?a.top:f.top,f.right=void 0!=a.right?a.right:f.right,f.bottom=void 0!=a.bottom?a.bottom:f.bottom,f.left=void 0!=a.left?a.left:f.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sunburstChart=function(){"use strict";function b(d){return m.reset(),m.models(c),d.each(function(d){var h=d3.select(this);a.utils.initSVG(h);var i=a.utils.availableWidth(f,h,e),j=a.utils.availableHeight(g,h,e);if(b.update=function(){0===k?h.call(b):h.transition().duration(k).call(b)},b.container=this,!d||!d.length)return a.utils.noData(b,h),b;h.selectAll(".nv-noData").remove();var l=h.selectAll("g.nv-wrap.nv-sunburstChart").data(d),m=l.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburstChart").append("g"),n=l.select("g");m.append("g").attr("class","nv-sunburstWrap"),l.attr("transform","translate("+e.left+","+e.top+")"),c.width(i).height(j);var o=n.select(".nv-sunburstWrap").datum(d);d3.transition(o).call(c)}),m.renderEnd("sunburstChart immediate"),b}var c=a.models.sunburst(),d=a.models.tooltip(),e={top:30,right:20,bottom:20,left:20},f=null,g=null,h=a.utils.defaultColor(),i=(Math.round(1e5*Math.random()),null),j=null,k=250,l=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),m=a.utils.renderWatch(l);return d.headerEnabled(!1).duration(0).valueFormatter(function(a){return a}),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.data.name,value:a.data.size,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=l,b.sunburst=c,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return i},set:function(a){i=a}},color:{get:function(){return h},set:function(a){h=a,c.color(h)}},duration:{get:function(){return k},set:function(a){k=a,m.reset(k),c.duration(k)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.version="1.8.1"}(); \ No newline at end of file diff --git a/php/phpunit/html/_js/popper.min.js b/php/phpunit/html/_js/popper.min.js new file mode 100644 index 00000000000..bb1aaae3e86 --- /dev/null +++ b/php/phpunit/html/_js/popper.min.js @@ -0,0 +1,5 @@ +/* + Copyright (C) Federico Zivolo 2020 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function i(e){return e&&e.referenceNode?e.referenceNode:e}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f]),E=parseFloat(w['border'+f+'Width']),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,$(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ce.FLIP:p=[n,i];break;case ce.CLOCKWISE:p=G(n);break;case ce.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!fe),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ge}); +//# sourceMappingURL=popper.min.js.map diff --git a/php/phpunit/html/dashboard.html b/php/phpunit/html/dashboard.html new file mode 100644 index 00000000000..c32c7505eba --- /dev/null +++ b/php/phpunit/html/dashboard.html @@ -0,0 +1,283 @@ + + + + + Dashboard for /app/src/sql + + + + + + + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Classes

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          ClassCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Methods

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Coverage Distribution

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Complexity

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insufficient Coverage

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCoverage
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Project Risks

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          MethodCRAP
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                                                          + + + + + + diff --git a/php/phpunit/html/index.html b/php/phpunit/html/index.html new file mode 100644 index 00000000000..12f6f522905 --- /dev/null +++ b/php/phpunit/html/index.html @@ -0,0 +1,302 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/html

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEvent

                                                                                                                                                                                                                                                                                                          MydbEvent +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbException

                                                                                                                                                                                                                                                                                                          MydbException +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbInterface

                                                                                                                                                                                                                                                                                                          MydbInterface +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListener

                                                                                                                                                                                                                                                                                                          MydbListener +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqli

                                                                                                                                                                                                                                                                                                          MydbMysqli +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          _css

                                                                                                                                                                                                                                                                                                          _css +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          _icons

                                                                                                                                                                                                                                                                                                          _icons +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          _js

                                                                                                                                                                                                                                                                                                          _js +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mydb.php.html

                                                                                                                                                                                                                                                                                                          Mydb.php.html +
                                                                                                                                                                                                                                                                                                          857 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbCredentials.php.html

                                                                                                                                                                                                                                                                                                          MydbCredentials.php.html +
                                                                                                                                                                                                                                                                                                          173 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbCredentialsInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbCredentialsInterface.php.html +
                                                                                                                                                                                                                                                                                                          13 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEnvironment.php.html

                                                                                                                                                                                                                                                                                                          MydbEnvironment.php.html +
                                                                                                                                                                                                                                                                                                          267 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEnvironmentInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbEnvironmentInterface.php.html +
                                                                                                                                                                                                                                                                                                          21 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEvent.php.html

                                                                                                                                                                                                                                                                                                          MydbEvent.php.html +
                                                                                                                                                                                                                                                                                                          55 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEventInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbEventInterface.php.html +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEventMetadataInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbEventMetadataInterface.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbException.php.html

                                                                                                                                                                                                                                                                                                          MydbException.php.html +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbExpression.php.html

                                                                                                                                                                                                                                                                                                          MydbExpression.php.html +
                                                                                                                                                                                                                                                                                                          17 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbInterface.php.html +
                                                                                                                                                                                                                                                                                                          10 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListener.php.html

                                                                                                                                                                                                                                                                                                          MydbListener.php.html +
                                                                                                                                                                                                                                                                                                          22 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListenerInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbListenerInterface.php.html +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbLogger.php.html

                                                                                                                                                                                                                                                                                                          MydbLogger.php.html +
                                                                                                                                                                                                                                                                                                          202 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqli.php.html

                                                                                                                                                                                                                                                                                                          MydbMysqli.php.html +
                                                                                                                                                                                                                                                                                                          701 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbMysqliInterface.php.html +
                                                                                                                                                                                                                                                                                                          33 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbOptions.php.html

                                                                                                                                                                                                                                                                                                          MydbOptions.php.html +
                                                                                                                                                                                                                                                                                                          241 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbOptionsInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbOptionsInterface.php.html +
                                                                                                                                                                                                                                                                                                          32 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbQueryBuilder.php.html

                                                                                                                                                                                                                                                                                                          MydbQueryBuilder.php.html +
                                                                                                                                                                                                                                                                                                          447 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbQueryBuilderInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbQueryBuilderInterface.php.html +
                                                                                                                                                                                                                                                                                                          26 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRegistry.php.html

                                                                                                                                                                                                                                                                                                          MydbRegistry.php.html +
                                                                                                                                                                                                                                                                                                          282 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRepository.php.html

                                                                                                                                                                                                                                                                                                          MydbRepository.php.html +
                                                                                                                                                                                                                                                                                                          17 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRepositoryInterface.php.html

                                                                                                                                                                                                                                                                                                          MydbRepositoryInterface.php.html +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          dashboard.html

                                                                                                                                                                                                                                                                                                          dashboard.html +
                                                                                                                                                                                                                                                                                                          25 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/index.html b/php/phpunit/index.html new file mode 100644 index 00000000000..93bb74c1374 --- /dev/null +++ b/php/phpunit/index.html @@ -0,0 +1,150 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          html

                                                                                                                                                                                                                                                                                                          html +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          xml

                                                                                                                                                                                                                                                                                                          xml +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-clover.xml

                                                                                                                                                                                                                                                                                                          phpunit-clover.xml +
                                                                                                                                                                                                                                                                                                          79 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-cobertura.xml

                                                                                                                                                                                                                                                                                                          phpunit-cobertura.xml +
                                                                                                                                                                                                                                                                                                          111 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-classes.svg

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-classes.svg +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-lines.svg

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-lines.svg +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-methods.svg

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge-methods.svg +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge.svg

                                                                                                                                                                                                                                                                                                          phpunit-coverage-badge.svg +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-coverage.txt

                                                                                                                                                                                                                                                                                                          phpunit-coverage.txt +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-crap4j.xml

                                                                                                                                                                                                                                                                                                          phpunit-crap4j.xml +
                                                                                                                                                                                                                                                                                                          71 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-junit.xml

                                                                                                                                                                                                                                                                                                          phpunit-junit.xml +
                                                                                                                                                                                                                                                                                                          56 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-testdox-html.html

                                                                                                                                                                                                                                                                                                          phpunit-testdox-html.html +
                                                                                                                                                                                                                                                                                                          18 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          phpunit-testdox-text.txt

                                                                                                                                                                                                                                                                                                          phpunit-testdox-text.txt +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/phpunit-clover.xml b/php/phpunit/phpunit-clover.xml new file mode 100644 index 00000000000..3f96f1de8f3 --- /dev/null +++ b/php/phpunit/phpunit-clover.xml @@ -0,0 +1,1182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/phpunit/phpunit-cobertura.xml b/php/phpunit/phpunit-cobertura.xml new file mode 100644 index 00000000000..7fe656b1184 --- /dev/null +++ b/php/phpunit/phpunit-cobertura.xml @@ -0,0 +1,2512 @@ + + + + + /app/src/sql + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/phpunit/phpunit-coverage-badge-classes.svg b/php/phpunit/phpunit-coverage-badge-classes.svg new file mode 100644 index 00000000000..3e01ead5371 --- /dev/null +++ b/php/phpunit/phpunit-coverage-badge-classes.svg @@ -0,0 +1 @@ +PHPUnit Classes: 100.00% (20/20)PHPUnit Classes100.00% (20/20) \ No newline at end of file diff --git a/php/phpunit/phpunit-coverage-badge-lines.svg b/php/phpunit/phpunit-coverage-badge-lines.svg new file mode 100644 index 00000000000..2097c01e795 --- /dev/null +++ b/php/phpunit/phpunit-coverage-badge-lines.svg @@ -0,0 +1 @@ +PHPUnit Lines: 100.00% (699/699)PHPUnit Lines100.00% (699/699) \ No newline at end of file diff --git a/php/phpunit/phpunit-coverage-badge-methods.svg b/php/phpunit/phpunit-coverage-badge-methods.svg new file mode 100644 index 00000000000..8a60995d3a9 --- /dev/null +++ b/php/phpunit/phpunit-coverage-badge-methods.svg @@ -0,0 +1 @@ +PHPUnit Methods: 100.00% (168/168)PHPUnit Methods100.00% (168/168) \ No newline at end of file diff --git a/php/phpunit/phpunit-coverage-badge.svg b/php/phpunit/phpunit-coverage-badge.svg new file mode 100644 index 00000000000..7b196712e46 --- /dev/null +++ b/php/phpunit/phpunit-coverage-badge.svg @@ -0,0 +1,16 @@ + + + + + + + + + coverage + coverage + + + 100 % + 100 % + + \ No newline at end of file diff --git a/php/phpunit/phpunit-coverage.txt b/php/phpunit/phpunit-coverage.txt new file mode 100644 index 00000000000..8cab2fae191 --- /dev/null +++ b/php/phpunit/phpunit-coverage.txt @@ -0,0 +1,7 @@ + + +Code Coverage Report Summary: + Classes: 100.00% (20/20) + Methods: 100.00% (168/168) + Lines: 100.00% (699/699) + diff --git a/php/phpunit/phpunit-crap4j.xml b/php/phpunit/phpunit-crap4j.xml new file mode 100644 index 00000000000..7786e9aa5f3 --- /dev/null +++ b/php/phpunit/phpunit-crap4j.xml @@ -0,0 +1,1907 @@ + + + + 2024-01-03 00:24:04 + + Method Crap Stats + 172 + 0 + 0 + 412 + 0 + + + + sql + sql\Mydb + __construct + __construct(sql\MydbCredentialsInterface $credentials, Psr\Log\LoggerInterface $logger, ?sql\MydbOptionsInterface $options, ?sql\MydbMysqliInterface $mysqli, ?sql\MydbEnvironmentInterface $environment, ?sql\MydbQueryBuilderInterface $queryBuilder, ?sql\MydbListenerInterface $eventListener) + __construct(sql\MydbCredentialsInterface $credentials, Psr\Log\LoggerInterface $logger, ?sql\MydbOptionsInterface $options, ?sql\MydbMysqliInterface $mysqli, ?sql\MydbEnvironmentInterface $environment, ?sql\MydbQueryBuilderInterface $queryBuilder, ?sql\MydbListenerInterface $eventListener) + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + __destruct + __destruct() + __destruct() + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + open + open(int $retry): bool + open(int $retry): bool + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + query + query(string $query): ?array + query(string $query): ?array + 6 + 6 + 100 + 0 + + + sql + sql\Mydb + command + command(string $query): bool + command(string $query): bool + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + getEnumValues + getEnumValues(string $table, string $column): array + getEnumValues(string $table, string $column): array + 6 + 6 + 100 + 0 + + + sql + sql\Mydb + escape + escape($unescaped, string $quote): string + escape($unescaped, string $quote): string + 2 + 2 + 100 + 0 + + + sql + sql\Mydb + getPrimaryKeys + getPrimaryKeys(string $table): ?array + getPrimaryKeys(string $table): ?array + 7 + 7 + 100 + 0 + + + sql + sql\Mydb + beginTransaction + beginTransaction(): void + beginTransaction(): void + 5 + 5 + 100 + 0 + + + sql + sql\Mydb + rollbackTransaction + rollbackTransaction(): void + rollbackTransaction(): void + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + commitTransaction + commitTransaction(): void + commitTransaction(): void + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + close + close(): void + close(): void + 10 + 10 + 100 + 0 + + + sql + sql\Mydb + replace + replace(string $query): ?string + replace(string $query): ?string + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + insert + insert(string $query): ?string + insert(string $query): ?string + 2 + 2 + 100 + 0 + + + sql + sql\Mydb + select + select(string $query): ?array + select(string $query): ?array + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + delete + delete(string $query): ?int + delete(string $query): ?int + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + update + update(string $query): ?int + update(string $query): ?int + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + deleteWhere + deleteWhere(array $whereFields, string $table, array $whereNotFields): ?int + deleteWhere(array $whereFields, string $table, array $whereNotFields): ?int + 2 + 2 + 100 + 0 + + + sql + sql\Mydb + updateWhere + updateWhere(array $update, array $whereFields, string $table, array $whereNotFields): ?int + updateWhere(array $update, array $whereFields, string $table, array $whereNotFields): ?int + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + updateWhereMany + updateWhereMany(array $columnSetWhere, array $where, string $table): void + updateWhereMany(array $columnSetWhere, array $where, string $table): void + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + insertMany + insertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicateSql): void + insertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicateSql): void + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + replaceOne + replaceOne(array $data, string $table): ?string + replaceOne(array $data, string $table): ?string + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + insertOne + insertOne(array $data, string $table): ?string + insertOne(array $data, string $table): ?string + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + sendClientRequest + sendClientRequest(string $query): bool + sendClientRequest(string $query): bool + 3 + 3 + 100 + 0 + + + sql + sql\Mydb + readServerResponse + readServerResponse(string $query): ?sql\MydbMysqli\MydbMysqliResultInterface + readServerResponse(string $query): ?sql\MydbMysqli\MydbMysqliResultInterface + 6 + 6 + 100 + 0 + + + sql + sql\Mydb + onWarning + onWarning(string $warningMessage, ?string $sql): void + onWarning(string $warningMessage, ?string $sql): void + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + onError + onError(sql\MydbException $exception, ?string $sql): void + onError(sql\MydbException $exception, ?string $sql): void + 1 + 1 + 100 + 0 + + + sql + sql\Mydb + connect + connect(int $retry): bool + connect(int $retry): bool + 17 + 17 + 100 + 0 + + + sql + sql\MydbCredentials + __construct + __construct(string $host, string $username, string $passwd, string $dbname, ?int $port, ?string $socket, int $flags) + __construct(string $host, string $username, string $passwd, string $dbname, ?int $port, ?string $socket, int $flags) + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getHost + getHost(): string + getHost(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getUsername + getUsername(): string + getUsername(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getPasswd + getPasswd(): string + getPasswd(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getDbname + getDbname(): string + getDbname(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getPort + getPort(): ?int + getPort(): ?int + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getSocket + getSocket(): ?string + getSocket(): ?string + 1 + 1 + 100 + 0 + + + sql + sql\MydbCredentials + getFlags + getFlags(): int + getFlags(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + gc_collect_cycles + gc_collect_cycles(): void + gc_collect_cycles(): void + 2 + 2 + 100 + 0 + + + sql + sql\MydbEnvironment + restore_error_handler + restore_error_handler(): void + restore_error_handler(): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + set_error_handler + set_error_handler(?callable $callback, int $error_levels): void + set_error_handler(?callable $callback, int $error_levels): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + setMysqlndNetReadTimeout + setMysqlndNetReadTimeout(string $timeoutSeconds): bool + setMysqlndNetReadTimeout(string $timeoutSeconds): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + error_reporting + error_reporting(int $level): int + error_reporting(int $level): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + ignore_user_abort + ignore_user_abort(): int + ignore_user_abort(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbEnvironment + ini_set + ini_set(string $key, string $value): string + ini_set(string $key, string $value): string + 2 + 2 + 100 + 0 + + + sql + sql\MydbEnvironment + endSignalsTrap + endSignalsTrap(): ?array + endSignalsTrap(): ?array + 5 + 5 + 100 + 0 + + + sql + sql\MydbEnvironment + startSignalsTrap + startSignalsTrap(): void + startSignalsTrap(): void + 3 + 3 + 100 + 0 + + + sql + sql\MydbEnvironment + getNullErrorHandler + getNullErrorHandler(): callable + getNullErrorHandler(): callable + 1 + 1 + 100 + 0 + + + sql + sql\MydbEvent + getEventMetadata + getEventMetadata(): ?array + getEventMetadata(): ?array + 0 + 0 + 100 + 0 + + + sql + sql\MydbEvent + getListeners + getListeners(): array + getListeners(): array + 0 + 0 + 100 + 0 + + + sql + sql\MydbEvent + notify + notify(): void + notify(): void + 4 + 4 + 100 + 0 + + + sql + sql\MydbEvent + getEventName + getEventName(): string + getEventName(): string + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalConnectionBegin + __construct + __construct(string $host, string $dbname) + __construct(string $host, string $dbname) + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalConnectionEnd + __construct + __construct(string $host, string $dbname, bool $success) + __construct(string $host, string $dbname, bool $success) + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalEvent + getEventMetadata + getEventMetadata(): ?array + getEventMetadata(): ?array + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalEvent + setListeners + setListeners(array $listeners): sql\MydbEventInterface + setListeners(array $listeners): sql\MydbEventInterface + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalEvent + getListeners + getListeners(): array + getListeners(): array + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalQueryBegin + __construct + __construct(string $sql) + __construct(string $sql) + 1 + 1 + 100 + 0 + + + sql\MydbEvent + sql\MydbEvent\InternalQueryEnd + __construct + __construct(string $sql, bool $success) + __construct(string $sql, bool $success) + 1 + 1 + 100 + 0 + + + sql\MydbException + sql\MydbException\QueryBuilderEscapeException + __construct + __construct(string $message, int $code, ?Throwable $previous) + __construct(string $message, int $code, ?Throwable $previous) + 1 + 1 + 100 + 0 + + + sql + sql\MydbExpression + __construct + __construct(string $input) + __construct(string $input) + 1 + 1 + 100 + 0 + + + sql + sql\MydbExpression + __toString + __toString(): string + __toString(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbListener + onEvent + onEvent(sql\MydbEventMetadataInterface $event): ?bool + onEvent(sql\MydbEventMetadataInterface $event): ?bool + 0 + 0 + 100 + 0 + + + sql + sql\MydbListener + observe + observe(sql\MydbEventMetadataInterface $event): bool + observe(sql\MydbEventMetadataInterface $event): bool + 1 + 1 + 100 + 0 + + + sql\MydbListener + sql\MydbListener\InternalListener + __construct + __construct(?Psr\Log\LoggerInterface $logger) + __construct(?Psr\Log\LoggerInterface $logger) + 1 + 1 + 100 + 0 + + + sql\MydbListener + sql\MydbListener\InternalListener + onEvent + onEvent(sql\MydbEventMetadataInterface $event): ?bool + onEvent(sql\MydbEventMetadataInterface $event): ?bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbLogger + __construct + __construct($stdout, $stderr, string $stdeol) + __construct($stdout, $stderr, string $stdeol) + 3 + 3 + 100 + 0 + + + sql + sql\MydbLogger + __destruct + __destruct() + __destruct() + 3 + 3 + 100 + 0 + + + sql + sql\MydbLogger + error + error($message, array $context): void + error($message, array $context): void + 4 + 4 + 100 + 0 + + + sql + sql\MydbLogger + log + log($level, $message, array $context): void + log($level, $message, array $context): void + 4 + 4 + 100 + 0 + + + sql + sql\MydbLogger + warning + warning($message, array $context): void + warning($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + emergency + emergency($message, array $context): void + emergency($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + alert + alert($message, array $context): void + alert($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + critical + critical($message, array $context): void + critical($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + notice + notice($message, array $context): void + notice($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + info + info($message, array $context): void + info($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + debug + debug($message, array $context): void + debug($message, array $context): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbLogger + checkStreamResource + checkStreamResource($stream): void + checkStreamResource($stream): void + 7 + 7 + 100 + 0 + + + sql + sql\MydbLogger + writeOutput + writeOutput($stream, string $data): void + writeOutput($stream, string $data): void + 9 + 9 + 100 + 0 + + + sql + sql\MydbLogger + fwrite + fwrite($stream, string $data): ?int + fwrite($stream, string $data): ?int + 3 + 3 + 100 + 0 + + + sql + sql\MydbLogger + formatter + formatter($var): string + formatter($var): string + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + __construct + __construct(?mysqli $resource) + __construct(?mysqli $resource) + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + init + init(): bool + init(): bool + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + setTransportOptions + setTransportOptions(sql\MydbOptionsInterface $options, sql\MydbEnvironmentInterface $environment): bool + setTransportOptions(sql\MydbOptionsInterface $options, sql\MydbEnvironmentInterface $environment): bool + 8 + 8 + 100 + 0 + + + sql + sql\MydbMysqli + setTransactionIsolationLevel + setTransactionIsolationLevel(string $level): bool + setTransactionIsolationLevel(string $level): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbMysqli + isTransactionOpen + isTransactionOpen(): bool + isTransactionOpen(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbMysqli + isConnected + isConnected(): bool + isConnected(): bool + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getMysqli + getMysqli(): ?mysqli + getMysqli(): ?mysqli + 1 + 1 + 100 + 0 + + + sql + sql\MydbMysqli + realQuery + realQuery(string $query): bool + realQuery(string $query): bool + 3 + 3 + 100 + 0 + + + sql + sql\MydbMysqli + readServerResponse + readServerResponse(sql\MydbEnvironmentInterface $environment): ?sql\MydbMysqli\MydbMysqliResult + readServerResponse(sql\MydbEnvironmentInterface $environment): ?sql\MydbMysqli\MydbMysqliResult + 8 + 8 + 100 + 0 + + + sql + sql\MydbMysqli + realEscapeString + realEscapeString(string $string): ?string + realEscapeString(string $string): ?string + 3 + 3 + 100 + 0 + + + sql + sql\MydbMysqli + beginTransactionReadwrite + beginTransactionReadwrite(): bool + beginTransactionReadwrite(): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + beginTransactionReadonly + beginTransactionReadonly(): bool + beginTransactionReadonly(): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + rollback + rollback(): bool + rollback(): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + commitAndRelease + commitAndRelease(): bool + commitAndRelease(): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + commit + commit(): bool + commit(): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + realConnect + realConnect(string $host, string $username, string $password, string $dbname, ?int $port, ?string $socket, int $flags): bool + realConnect(string $host, string $username, string $password, string $dbname, ?int $port, ?string $socket, int $flags): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + mysqliReport + mysqliReport(int $level): bool + mysqliReport(int $level): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbMysqli + close + close(): bool + close(): bool + 3 + 3 + 100 + 0 + + + sql + sql\MydbMysqli + getConnectErrno + getConnectErrno(): ?int + getConnectErrno(): ?int + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getConnectError + getConnectError(): ?string + getConnectError(): ?string + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + isServerGone + isServerGone(): bool + isServerGone(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbMysqli + getError + getError(): ?string + getError(): ?string + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getErrNo + getErrNo(): ?int + getErrNo(): ?int + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getAffectedRows + getAffectedRows(): ?int + getAffectedRows(): ?int + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + getInsertId + getInsertId(): int|string|null + getInsertId(): int|string|null + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + autocommit + autocommit(bool $enable): bool + autocommit(bool $enable): bool + 4 + 4 + 100 + 0 + + + sql + sql\MydbMysqli + extractServerResponse + extractServerResponse(sql\MydbEnvironmentInterface $environment, array $events): ?mysqli_result + extractServerResponse(sql\MydbEnvironmentInterface $environment, array $events): ?mysqli_result + 3 + 3 + 100 + 0 + + + sql + sql\MydbMysqli + getWarnings + getWarnings(): array + getWarnings(): array + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getFieldCount + getFieldCount(): ?int + getFieldCount(): ?int + 2 + 2 + 100 + 0 + + + sql + sql\MydbMysqli + getWarningCount + getWarningCount(): ?int + getWarningCount(): ?int + 2 + 2 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + __construct + __construct(?mysqli_result $result, array $warnings, int $fieldsCount) + __construct(?mysqli_result $result, array $warnings, int $fieldsCount) + 2 + 2 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + getFieldCount + getFieldCount(): int + getFieldCount(): int + 1 + 1 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + getWarnings + getWarnings(): array + getWarnings(): array + 1 + 1 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + setErrorMessage + setErrorMessage(string $errorMessage): void + setErrorMessage(string $errorMessage): void + 1 + 1 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + setErrorNumber + setErrorNumber(int $errorNumber): void + setErrorNumber(int $errorNumber): void + 1 + 1 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + getError + getError(): ?string + getError(): ?string + 6 + 6 + 100 + 0 + + + sql\MydbMysqli + sql\MydbMysqli\MydbMysqliResult + getResult + getResult(): ?array + getResult(): ?array + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getNonInteractiveTimeout + getNonInteractiveTimeout(): int + getNonInteractiveTimeout(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setNonInteractiveTimeout + setNonInteractiveTimeout(int $nonInteractiveTimeout): void + setNonInteractiveTimeout(int $nonInteractiveTimeout): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getServerSideSelectTimeout + getServerSideSelectTimeout(): int + getServerSideSelectTimeout(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setServerSideSelectTimeout + setServerSideSelectTimeout(int $seconds): void + setServerSideSelectTimeout(int $seconds): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getConnectTimeout + getConnectTimeout(): int + getConnectTimeout(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setConnectTimeout + setConnectTimeout(int $seconds): void + setConnectTimeout(int $seconds): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getErrorReporting + getErrorReporting(): int + getErrorReporting(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setErrorReporting + setErrorReporting(int $errorReporting): void + setErrorReporting(int $errorReporting): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getReadTimeout + getReadTimeout(): int + getReadTimeout(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setReadTimeout + setReadTimeout(int $seconds): void + setReadTimeout(int $seconds): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getNetworkBufferSize + getNetworkBufferSize(): int + getNetworkBufferSize(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setNetworkBufferSize + setNetworkBufferSize(int $bytes): void + setNetworkBufferSize(int $bytes): void + 3 + 3 + 100 + 0 + + + sql + sql\MydbOptions + getNetworkReadBuffer + getNetworkReadBuffer(): int + getNetworkReadBuffer(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setNetworkReadBuffer + setNetworkReadBuffer(int $bytes): void + setNetworkReadBuffer(int $bytes): void + 3 + 3 + 100 + 0 + + + sql + sql\MydbOptions + getClientErrorLevel + getClientErrorLevel(): int + getClientErrorLevel(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setClientErrorLevel + setClientErrorLevel(int $mysqliReport): void + setClientErrorLevel(int $mysqliReport): void + 3 + 3 + 100 + 0 + + + sql + sql\MydbOptions + getTimeZone + getTimeZone(): string + getTimeZone(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setTimeZone + setTimeZone(string $timeZone): void + setTimeZone(string $timeZone): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + isAutocommit + isAutocommit(): bool + isAutocommit(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setAutocommit + setAutocommit(bool $autocommit): void + setAutocommit(bool $autocommit): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getCharset + getCharset(): string + getCharset(): string + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setCharset + setCharset(string $charset): void + setCharset(string $charset): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + isPersistent + isPersistent(): bool + isPersistent(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setPersistent + setPersistent(bool $persistent): void + setPersistent(bool $persistent): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + isReadonly + isReadonly(): bool + isReadonly(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + setReadonly + setReadonly(bool $readonly): void + setReadonly(bool $readonly): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbOptions + getTransactionIsolationLevel + getTransactionIsolationLevel(): ?string + getTransactionIsolationLevel(): ?string + 3 + 3 + 100 + 0 + + + sql + sql\MydbOptions + setTransactionIsolationLevel + setTransactionIsolationLevel(string $isolationLevel): void + setTransactionIsolationLevel(string $isolationLevel): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbQueryBuilder + __construct + __construct(sql\MydbMysqli\MydbMysqliEscapeStringInterface $mysqli) + __construct(sql\MydbMysqli\MydbMysqliEscapeStringInterface $mysqli) + 1 + 1 + 100 + 0 + + + sql + sql\MydbQueryBuilder + showColumnsLike + showColumnsLike(string $table, string $column): string + showColumnsLike(string $table, string $column): string + 3 + 3 + 100 + 0 + + + sql + sql\MydbQueryBuilder + showKeys + showKeys(string $table): string + showKeys(string $table): string + 2 + 2 + 100 + 0 + + + sql + sql\MydbQueryBuilder + insertOne + insertOne(array $data, string $table, string $type): string + insertOne(array $data, string $table, string $type): string + 4 + 4 + 100 + 0 + + + sql + sql\MydbQueryBuilder + buildUpdateWhereMany + buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string + buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string + 10 + 10 + 100 + 0 + + + sql + sql\MydbQueryBuilder + buildUpdateWhere + buildUpdateWhere(array $update, array $whereFields, string $table, array $whereNotFields): ?string + buildUpdateWhere(array $update, array $whereFields, string $table, array $whereNotFields): ?string + 6 + 6 + 100 + 0 + + + sql + sql\MydbQueryBuilder + buildDeleteWhere + buildDeleteWhere(string $table, array $fields, array $negativeFields): ?string + buildDeleteWhere(string $table, array $fields, array $negativeFields): ?string + 4 + 4 + 100 + 0 + + + sql + sql\MydbQueryBuilder + buildWhere + buildWhere(array $fields, array $negativeFields, array $likeFields): string + buildWhere(array $fields, array $negativeFields, array $likeFields): string + 15 + 15 + 100 + 0 + + + sql + sql\MydbQueryBuilder + buildInsertMany + buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string + buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string + 7 + 7 + 100 + 0 + + + sql + sql\MydbQueryBuilder + escape + escape($unescaped, string $quote): string + escape($unescaped, string $quote): string + 17 + 17 + 100 + 0 + + + sql + sql\MydbRegistry + serialize + serialize(): ?string + serialize(): ?string + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + unserialize + unserialize($data): void + unserialize($data): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + current + current(): ?sql\MydbInterface + current(): ?sql\MydbInterface + 2 + 2 + 100 + 0 + + + sql + sql\MydbRegistry + key + key(): ?string + key(): ?string + 2 + 2 + 100 + 0 + + + sql + sql\MydbRegistry + next + next(): void + next(): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + rewind + rewind(): void + rewind(): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + valid + valid(): bool + valid(): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + count + count(): int + count(): int + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + offsetExists + offsetExists($offset): bool + offsetExists($offset): bool + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + offsetGet + offsetGet($offset): sql\MydbInterface + offsetGet($offset): sql\MydbInterface + 2 + 2 + 100 + 0 + + + sql + sql\MydbRegistry + offsetSet + offsetSet($offset, $value): void + offsetSet($offset, $value): void + 3 + 3 + 100 + 0 + + + sql + sql\MydbRegistry + offsetUnset + offsetUnset($offset): void + offsetUnset($offset): void + 2 + 2 + 100 + 0 + + + sql + sql\MydbRegistry + __clone + __clone() + __clone() + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + __serialize + __serialize(): array + __serialize(): array + 1 + 1 + 100 + 0 + + + sql + sql\MydbRegistry + __unserialize + __unserialize(array $data): void + __unserialize(array $data): void + 1 + 1 + 100 + 0 + + + sql + sql\MydbRepository + getDatabaseIdentifier + getDatabaseIdentifier(): string + getDatabaseIdentifier(): string + 0 + 0 + 100 + 0 + + + sql + sql\MydbRepository + __construct + __construct(sql\MydbRegistry $registry) + __construct(sql\MydbRegistry $registry) + 1 + 1 + 100 + 0 + + + sql + sql\MydbRepository + getDatabase + getDatabase(): sql\MydbInterface + getDatabase(): sql\MydbInterface + 1 + 1 + 100 + 0 + + + diff --git a/php/phpunit/phpunit-junit.xml b/php/phpunit/phpunit-junit.xml new file mode 100644 index 00000000000..2887588c1b2 --- /dev/null +++ b/php/phpunit/phpunit-junit.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/phpunit/phpunit-testdox-html.html b/php/phpunit/phpunit-testdox-html.html new file mode 100644 index 00000000000..29db9a2070e --- /dev/null +++ b/php/phpunit/phpunit-testdox-html.html @@ -0,0 +1,349 @@ + + + + + Test Documentation + + + +

                                                                                                                                                                                                                                                                                                          Delete (phpunit\Delete)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Delete
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Delete error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Delete internal error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Delete where
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Delete where returns null
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Exception (phpunit\Exception)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Table does not exist
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to connect
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to connect after retry
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to connect lazy
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to command lazy
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to begin transaction
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to rollback transaction
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to commit transaction
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Failed to escape lazy
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • My sql warning
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • My sql error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Insert (phpunit\Insert)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Replace
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert many
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Logger (phpunit\Logger)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Logger error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger constructor out
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger constructor err
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream err end
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream out closed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream err closed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream out bad mode
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream err bad mode
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger stream out end
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with strings with data set "nothing"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with strings with data set "nothing-array"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with strings with data set "nothing-error"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with strings with data set "something"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with strings with data set "chars"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Logger with context
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Meta (phpunit\Meta)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Open
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Primary key
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Primary key not found
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Primary key composite
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Enum
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Set
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Not real enum or set
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Escape
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Single quoted escape
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Double quoted escape
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Primary key not defined
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Primary key query failed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mydb Environment (phpunit\MydbEnvironment)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Signal sighup trap with data set "SIGHUP"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Signal sighup trap with data set "SIGTERM"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Signal sighup trap with data set "SIGINT"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Signal sighup trap with data set "SIGINT,SIGTERM,SIGHUP"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mydb Event (phpunit\MydbEvent)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Mydb event listener break
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Mydb event listener exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Mydb internal event success
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mydb Exception (phpunit\MydbException)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • My exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query builder exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mysqli (phpunit\Mysqli)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Reuse resource
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Get mysqli
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Options no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Read response no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Extract response no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Escape no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transactions no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transactions will finish when forced autocommit
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Close no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Affected rows no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Warnings no init
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Options (phpunit\Options)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Non interactive timeouts
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transaction isolation level
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Server side select timeouts
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Error reporting
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Read timeout
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Network buffer
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Network buffer min
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Network buffer max
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Set read buffer
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Set read buffer min
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Set read buffer max
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Mysqli report
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Mysqli report min
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Mysqli report max
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Set time zone
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Autocommit
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Charset
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Persistent
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Readonly
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Query Builder (phpunit\QueryBuilder)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Show columns like
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Show keys
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "simple int"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "simple float"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "expression"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "raw null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "string caps null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "string lowercase null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "string 0x"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "string 0x even"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert one with data set "string 0x mismatch"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Insert replace one exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "simple int"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "simple float"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "expression"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "raw null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "string caps null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "string lowercase null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "string 0x"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "string 0x even"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Replace one with data set "string 0x mismatch"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Escape
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many with data set "simple"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many with data set "prefixed simple"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "simple"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "expression"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "expression8"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "simple array count >1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "negative array count >1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "simple null array count >1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "negative null array count >1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "simple array count 1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "negative array count 1"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "simple null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "negative null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set "like null"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #0
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #3
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #4
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #5
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #6
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #7
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #8
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #9
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #10
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #11
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #12
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #13
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #14
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #15
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #16
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #17
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #18
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #19
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #20
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #21
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #22
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #23
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #24
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #25
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #26
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #27
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #28
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #29
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #30
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #31
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #32
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #33
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #34
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where with data set #35
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build where exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build insert many exception
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 3
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 4
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 5
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 6
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where many exception 7
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build delete where exceptions
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where exceptions 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where exceptions 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where exceptions 3
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where exceptions 4
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Build update where exceptions 5
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Registry (phpunit\Registry)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Registry empty 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry empty 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry empty 3
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry set
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry un set 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry un set 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry serialize 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry serialize 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry unserialize 1
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry unserialize 2
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Registry clone
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Repository (phpunit\Repository)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Registry
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Resource (phpunit\Resource)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Open
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Open close error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Open autocommit failed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Close not connected
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Will commit not persistent transaction when no autocommit and no transaction on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Will commit is persistent transaction when no autocommit and no transaction on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transaction exception on persistent close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transaction exception on non persistent close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Disconnect exception on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Uncaught exception becomes internal exception on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • No gc when not connected
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Gc when connected
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Do no commit transaction when autocommit enabled on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Do no commit transaction when transaction explicitly started on close
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query bad client request
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query bad server response
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query bad server response packet field count is zero
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Query bad server response packet field count is not zero but bad result
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Connecting defaults failed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Connecting transaction isolation failed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Connecting transaction autocommit failed
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Select (phpunit\Select)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select all"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "complex select all"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select JOIN"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select UNION"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select ORDER BY"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select WHERE"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select COUNT"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select GROUP BY"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select HAVING"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select LIMIT"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select LIMIT OFFSET"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select ALL"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Simple select with data set "simple select SQL_SMALL_RESULT"
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Termination during query
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Server gone during query
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Transactions (phpunit\Transactions)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Begin transaction readonly real
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Begin transaction read write real
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Transaction isolation level
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Begin transaction readonly success
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Begin transaction readonly failure
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Begin transaction readwrite success
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Begin transaction readwrite failure
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Rollback transaction success
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Rollback transaction failure
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Commit transaction success
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Commit transaction failure
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Update (phpunit\Update)

                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • Update where
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Update
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Update many
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Update internal error
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Update returns null
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          • Delete where returns null
                                                                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                                                                          + + \ No newline at end of file diff --git a/php/phpunit/phpunit-testdox-text.txt b/php/phpunit/phpunit-testdox-text.txt new file mode 100644 index 00000000000..03fc77f6fd2 --- /dev/null +++ b/php/phpunit/phpunit-testdox-text.txt @@ -0,0 +1,277 @@ +Delete (phpunit\Delete) + [x] Delete + [x] Delete error + [x] Delete internal error + [x] Delete where + [x] Delete where returns null + +Exception (phpunit\Exception) + [x] Table does not exist + [x] Failed to connect + [x] Failed to connect after retry + [x] Failed to connect lazy + [x] Failed to command lazy + [x] Failed to begin transaction + [x] Failed to rollback transaction + [x] Failed to commit transaction + [x] Failed to escape lazy + [x] My sql warning + [x] My sql error + +Insert (phpunit\Insert) + [x] Replace + [x] Replace one + [x] Insert error + [x] Insert + [x] Insert many + [x] Insert one + +Logger (phpunit\Logger) + [x] Logger error + [x] Logger constructor out + [x] Logger constructor err + [x] Logger stream err end + [x] Logger stream out closed + [x] Logger stream err closed + [x] Logger stream out bad mode + [x] Logger stream err bad mode + [x] Logger stream out end + [x] Logger with strings with data set "nothing" + [x] Logger with strings with data set "nothing-array" + [x] Logger with strings with data set "nothing-error" + [x] Logger with strings with data set "something" + [x] Logger with strings with data set "chars" + [x] Logger with context + +Meta (phpunit\Meta) + [x] Open + [x] Close + [x] Primary key + [x] Primary key not found + [x] Primary key composite + [x] Enum + [x] Set + [x] Not real enum or set + [x] Escape + [x] Single quoted escape + [x] Double quoted escape + [x] Primary key not defined + [x] Primary key query failed + +Mydb Environment (phpunit\MydbEnvironment) + [x] Signal sighup trap with data set "SIGHUP" + [x] Signal sighup trap with data set "SIGTERM" + [x] Signal sighup trap with data set "SIGINT" + [x] Signal sighup trap with data set "SIGINT,SIGTERM,SIGHUP" + +Mydb Event (phpunit\MydbEvent) + [x] Mydb event listener break + [x] Mydb event listener exception + [x] Mydb internal event success + +Mydb Exception (phpunit\MydbException) + [x] My exception + [x] Query builder exception + +Mysqli (phpunit\Mysqli) + [x] Reuse resource + [x] Get mysqli + [x] Options no init + [x] Query no init + [x] Read response no init + [x] Extract response no init + [x] Escape no init + [x] Transactions no init + [x] Transactions will finish when forced autocommit + [x] Close no init + [x] Affected rows no init + [x] Warnings no init + +Options (phpunit\Options) + [x] Non interactive timeouts + [x] Transaction isolation level + [x] Server side select timeouts + [x] Error reporting + [x] Read timeout + [x] Network buffer + [x] Network buffer min + [x] Network buffer max + [x] Set read buffer + [x] Set read buffer min + [x] Set read buffer max + [x] Mysqli report + [x] Mysqli report min + [x] Mysqli report max + [x] Set time zone + [x] Autocommit + [x] Charset + [x] Persistent + [x] Readonly + +Query Builder (phpunit\QueryBuilder) + [x] Show columns like + [x] Show keys + [x] Insert one with data set "simple int" + [x] Insert one with data set "simple float" + [x] Insert one with data set "expression" + [x] Insert one with data set "raw null" + [x] Insert one with data set "string caps null" + [x] Insert one with data set "string lowercase null" + [x] Insert one with data set "string 0x" + [x] Insert one with data set "string 0x even" + [x] Insert one with data set "string 0x mismatch" + [x] Insert replace one exception + [x] Replace one with data set "simple int" + [x] Replace one with data set "simple float" + [x] Replace one with data set "expression" + [x] Replace one with data set "raw null" + [x] Replace one with data set "string caps null" + [x] Replace one with data set "string lowercase null" + [x] Replace one with data set "string 0x" + [x] Replace one with data set "string 0x even" + [x] Replace one with data set "string 0x mismatch" + [x] Escape + [x] Build update where many with data set "simple" + [x] Build update where many with data set "prefixed simple" + [x] Build where with data set "simple" + [x] Build where with data set "expression" + [x] Build where with data set "expression8" + [x] Build where with data set "simple array count >1" + [x] Build where with data set "negative array count >1" + [x] Build where with data set "simple null array count >1" + [x] Build where with data set "negative null array count >1" + [x] Build where with data set "simple array count 1" + [x] Build where with data set "negative array count 1" + [x] Build where with data set "simple null" + [x] Build where with data set "negative null" + [x] Build where with data set "like null" + [x] Build where with data set #0 + [x] Build where with data set #1 + [x] Build where with data set #2 + [x] Build where with data set #3 + [x] Build where with data set #4 + [x] Build where with data set #5 + [x] Build where with data set #6 + [x] Build where with data set #7 + [x] Build where with data set #8 + [x] Build where with data set #9 + [x] Build where with data set #10 + [x] Build where with data set #11 + [x] Build where with data set #12 + [x] Build where with data set #13 + [x] Build where with data set #14 + [x] Build where with data set #15 + [x] Build where with data set #16 + [x] Build where with data set #17 + [x] Build where with data set #18 + [x] Build where with data set #19 + [x] Build where with data set #20 + [x] Build where with data set #21 + [x] Build where with data set #22 + [x] Build where with data set #23 + [x] Build where with data set #24 + [x] Build where with data set #25 + [x] Build where with data set #26 + [x] Build where with data set #27 + [x] Build where with data set #28 + [x] Build where with data set #29 + [x] Build where with data set #30 + [x] Build where with data set #31 + [x] Build where with data set #32 + [x] Build where with data set #33 + [x] Build where with data set #34 + [x] Build where with data set #35 + [x] Build where exception + [x] Build insert many exception + [x] Build update where many exception 1 + [x] Build update where many exception 2 + [x] Build update where many exception 3 + [x] Build update where many exception 4 + [x] Build update where many exception 5 + [x] Build update where many exception 6 + [x] Build update where many exception 7 + [x] Build delete where exceptions + [x] Build update where exceptions 1 + [x] Build update where exceptions 2 + [x] Build update where exceptions 3 + [x] Build update where exceptions 4 + [x] Build update where exceptions 5 + +Registry (phpunit\Registry) + [x] Registry empty 1 + [x] Registry empty 2 + [x] Registry empty 3 + [x] Registry set + [x] Registry un set 1 + [x] Registry un set 2 + [x] Registry serialize 1 + [x] Registry serialize 2 + [x] Registry unserialize 1 + [x] Registry unserialize 2 + [x] Registry clone + +Repository (phpunit\Repository) + [x] Registry + +Resource (phpunit\Resource) + [x] Open + [x] Open close error + [x] Open autocommit failed + [x] Simple close + [x] Close not connected + [x] Will commit not persistent transaction when no autocommit and no transaction on close + [x] Will commit is persistent transaction when no autocommit and no transaction on close + [x] Transaction exception on persistent close + [x] Transaction exception on non persistent close + [x] Disconnect exception on close + [x] Uncaught exception becomes internal exception on close + [x] No gc when not connected + [x] Gc when connected + [x] Do no commit transaction when autocommit enabled on close + [x] Do no commit transaction when transaction explicitly started on close + [x] Query bad client request + [x] Query bad server response + [x] Query bad server response packet field count is zero + [x] Query bad server response packet field count is not zero but bad result + [x] Connecting defaults failed + [x] Connecting transaction isolation failed + [x] Connecting transaction autocommit failed + +Select (phpunit\Select) + [x] Simple select with data set "simple select all" + [x] Simple select with data set "complex select all" + [x] Simple select with data set "simple select JOIN" + [x] Simple select with data set "simple select UNION" + [x] Simple select with data set "simple select ORDER BY" + [x] Simple select with data set "simple select WHERE" + [x] Simple select with data set "simple select COUNT" + [x] Simple select with data set "simple select GROUP BY" + [x] Simple select with data set "simple select HAVING" + [x] Simple select with data set "simple select LIMIT" + [x] Simple select with data set "simple select LIMIT OFFSET" + [x] Simple select with data set "simple select ALL" + [x] Simple select with data set "simple select SQL_SMALL_RESULT" + [x] Termination during query + [x] Server gone during query + +Transactions (phpunit\Transactions) + [x] Begin transaction readonly real + [x] Begin transaction read write real + [x] Transaction isolation level + [x] Begin transaction readonly success + [x] Begin transaction readonly failure + [x] Begin transaction readwrite success + [x] Begin transaction readwrite failure + [x] Rollback transaction success + [x] Rollback transaction failure + [x] Commit transaction success + [x] Commit transaction failure + +Update (phpunit\Update) + [x] Update where + [x] Update + [x] Update many + [x] Update internal error + [x] Update returns null + [x] Delete where returns null + diff --git a/php/phpunit/xml/Mydb.php.xml b/php/phpunit/xml/Mydb.php.xml new file mode 100644 index 00000000000..900121cb6bd --- /dev/null +++ b/php/phpunit/xml/Mydb.php.xml @@ -0,0 +1,10225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + Psr\Log\LoggerInterface + ; + + + use + + sql\MydbException\ConnectDefaultsException + ; + + + use + + sql\MydbException\ConnectException + ; + + + use + + sql\MydbException\DeleteException + ; + + + use + + sql\MydbException\DisconnectException + ; + + + use + + sql\MydbException\InternalException + ; + + + use + + sql\MydbException\ServerGoneException + ; + + + use + + sql\MydbException\TerminationSignalException + ; + + + use + + sql\MydbException\TransactionAutocommitException + ; + + + use + + sql\MydbException\TransactionBeginReadonlyException + ; + + + use + + sql\MydbException\TransactionBeginReadwriteException + ; + + + use + + sql\MydbException\TransactionCommitException + ; + + + use + + sql\MydbException\TransactionIsolationException + ; + + + use + + sql\MydbException\TransactionRollbackException + ; + + + use + + sql\MydbException\UpdateException + ; + + + use + + sql\MydbInterface\RemoteResourceInterface + ; + + + use + + sql\MydbListener\InternalListener + ; + + + use + + sql\MydbMysqli\MydbMysqliResultInterface + ; + + + use + + Throwable + ; + + + use + + function + + array_map + ; + + + use + + function + + count + ; + + + use + + function + + explode + ; + + + use + + function + + implode + ; + + + use + + function + + preg_replace + ; + + + use + + function + + sprintf + ; + + + use + + function + + stripos + ; + + + use + + function + + strpos + ; + + + use + + function + + substr + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + + + */ + + + class + + Mydb + + implements + + MydbInterface + , + + RemoteResourceInterface + + + { + + + + + protected + + MydbMysqliInterface + + $mysqli + ; + + + + + protected + + MydbOptionsInterface + + $options + ; + + + + + protected + + MydbEnvironmentInterface + + $environment + ; + + + + + protected + + MydbQueryBuilderInterface + + $queryBuilder + ; + + + + + protected + + MydbListenerInterface + + $eventListener + ; + + + + + protected + + bool + + $terminating + + = + + false + ; + + + + + public + + function + + __construct + ( + + + + protected + + MydbCredentialsInterface + + $credentials + , + + + + protected + + LoggerInterface + + $logger + , + + + + ? + MydbOptionsInterface + + $options + + = + + null + , + + + + ? + MydbMysqliInterface + + $mysqli + + = + + null + , + + + + ? + MydbEnvironmentInterface + + $environment + + = + + null + , + + + + ? + MydbQueryBuilderInterface + + $queryBuilder + + = + + null + , + + + + ? + MydbListenerInterface + + $eventListener + + = + + null + , + + + + ) + + { + + + + $this + -> + options + + = + + $options + + ?? + + new + + MydbOptions + ( + ) + ; + + + + $this + -> + mysqli + + = + + $mysqli + + ?? + + new + + MydbMysqli + ( + ) + ; + + + + $this + -> + environment + + = + + $environment + + ?? + + new + + MydbEnvironment + ( + ) + ; + + + + $this + -> + queryBuilder + + = + + $queryBuilder + + ?? + + new + + MydbQueryBuilder + ( + $this + -> + mysqli + ) + ; + + + + $this + -> + eventListener + + = + + $eventListener + + ?? + + new + + InternalListener + ( + $logger + ) + ; + + + + } + + + + + /** + + + * A destructor may be called as soon as there are no references to an object. + + + * + + + * @see http://php.net/manual/en/mysqli.close.php + + + * @see http://php.net/manual/en/mysqli.ping.php (MysqlND not supports reconnect) + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + __destruct + ( + ) + + + + { + + + + $this + -> + terminating + + = + + true + ; + + + + $this + -> + close + ( + ) + ; + + + + } + + + + + /** + + + * Open connection to remote server + + + * @param int $retry retry failed connection attempts + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + open + ( + int + + $retry + + = + + 0 + ) + : + + bool + + + + { + + + + return + + $this + -> + connect + ( + $retry + ) + ; + + + + } + + + + + /** + + + * Execute raw SQL query and return results + + + * + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint + + + * + + + * @psalm-return array<array-key, array<array-key, (float|int|string|null)>>|null + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + query + ( + string + + $query + ) + : + + ? + array + + + + { + + + + + if + + ( + ! + $this + -> + connect + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + $result + + = + + $this + -> + sendClientRequest + ( + $query + ) + ; + + + + /** + + + * We should always read server response, no matter whether sendClientRequest result + + + */ + + + + $packet + + = + + $this + -> + readServerResponse + ( + $query + ) + ; + + + + + if + + ( + false + + === + + $result + + || + + null + + === + + $packet + ) + + { + + + + return + + null + ; + + + + } + + + + + if + + ( + $packet + -> + getFieldCount + ( + ) + + > + + 0 + ) + + { + + + + $payload + + = + + $packet + -> + getResult + ( + ) + ; + + + + if + + ( + null + + === + + $payload + ) + + { + + + + $this + -> + onError + ( + + + + new + + InternalException + ( + $packet + -> + getError + ( + ) + + ?? + + 'Reading of the result set failed' + ) + , + + + + $query + + + + ) + ; + + + + } + + + + + /** + + + * @var array<array-key, array<array-key, (float|int|string|null)>> $payload + + + */ + + + + return + + $payload + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + command + ( + string + + $query + ) + : + + bool + + + + { + + + + if + + ( + ! + $this + -> + connect + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + + $result + + = + + $this + -> + sendClientRequest + ( + $query + ) + ; + + + + + if + + ( + false + + === + + $result + ) + + { + + + + return + + false + ; + + + + } + + + + + $packet + + = + + $this + -> + readServerResponse + ( + $query + ) + ; + + + + + return + + null + + !== + + $packet + ; + + + + } + + + + + /** + + + * @return array<string> + + + * @throws \sql\MydbException + + + * @psalm-return list<string> + + + */ + + + + public + + function + + getEnumValues + ( + string + + $table + , + + string + + $column + ) + : + + array + + + + { + + + + $query + + = + + $this + -> + queryBuilder + -> + showColumnsLike + ( + $table + , + + $column + ) + ; + + + + + $resultArray + + = + + $this + -> + query + ( + $query + ) + ; + + + + $result + + = + + isset + ( + $resultArray + [ + 0 + ] + [ + 'Type' + ] + ) + + + + ? + + (string) + + $resultArray + [ + 0 + ] + [ + 'Type' + ] + + + + : + + null + ; + + + + + $match + + = + + false + ; + + + + $types + + = + + [ + 'enum' + , + + 'set' + ] + ; + + + + foreach + + ( + $types + + as + + $type + ) + + { + + + + if + + ( + 0 + + === + + stripos + ( + (string) + $result + , + + $type + + . + + '(' + ) + ) + + { + + + + $match + + = + + $type + ; + + + + + break + ; + + + + } + + + + } + + + + + if + + ( + false + + === + + $match + ) + + { + + + + $this + -> + onError + ( + new + + MydbException + ( + "Column not of type '" + + . + + implode + ( + ',' + , + + $types + ) + + . + + "'" + ) + ) + ; + + + + } + + + + + $input + + = + + substr + ( + (string) + + $result + , + + (int) + + strpos + ( + (string) + + $result + , + + '(' + ) + + + + + 1 + , + + - + 1 + ) + ; + + + + + // @codeCoverageIgnoreStart + + + + /** + + + * @psalm-suppress DocblockTypeContradiction + + + */ + + + + if + + ( + '' + + === + + $input + ) + + { + + + + throw + + new + + MydbException + ( + ) + ; + + + + } + + + + // @codeCoverageIgnoreEnd + + + + + $values + + = + + explode + ( + ',' + , + + preg_replace + ( + "/'/" + , + + '' + , + + $input + ) + ) + ; + + + + + return + + array_map + ( + 'strval' + , + + $values + ) + ; + + + + } + + + + + /** + + + * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + * @SuppressWarnings(PHPMD.NPathComplexity) + + + * @todo reduce NPathComplexity + + + */ + + + + public + + function + + escape + ( + $unescaped + , + + string + + $quote + + = + + "'" + ) + : + + string + + + + { + + + + if + + ( + ! + $this + -> + connect + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + return + + $this + -> + queryBuilder + -> + escape + ( + $unescaped + , + + $quote + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + * @throws \sql\MydbException\ConnectException + + + * @return ?array<string> + + + */ + + + + public + + function + + getPrimaryKeys + ( + string + + $table + ) + : + + ? + array + + + + { + + + + $result + + = + + $this + -> + query + ( + $this + -> + queryBuilder + -> + showKeys + ( + $table + ) + ) + ; + + + + + if + + ( + null + + === + + $result + ) + + { + + + + return + + null + ; + + + + } + + + + + $keys + + = + + [ + ] + ; + + + + foreach + + ( + $result + + as + + $row + ) + + { + + + + if + + ( + isset + ( + $row + [ + 'Key_name' + ] + ) + + && + + 'PRIMARY' + + === + + $row + [ + 'Key_name' + ] + + && + + isset + ( + $row + [ + 'Column_name' + ] + ) + ) + + { + + + + $keys + [ + ] + + = + + (string) + + $row + [ + 'Column_name' + ] + ; + + + + } + + + + } + + + + + return + + [ + ] + + !== + + $keys + + ? + + $keys + + : + + null + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + beginTransaction + ( + ) + : + + void + + + + { + + + + if + + ( + ! + $this + -> + connect + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + if + + ( + $this + -> + options + -> + isReadonly + ( + ) + ) + + { + + + + if + + ( + $this + -> + mysqli + -> + beginTransactionReadonly + ( + ) + ) + + { + + + + return + ; + + + + } + + + + $this + -> + onError + ( + new + + TransactionBeginReadonlyException + ( + ) + ) + ; + + + + } + + else + + { + + + + if + + ( + $this + -> + mysqli + -> + beginTransactionReadwrite + ( + ) + ) + + { + + + + return + ; + + + + } + + + + $this + -> + onError + ( + new + + TransactionBeginReadwriteException + ( + ) + ) + ; + + + + } + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + rollbackTransaction + ( + ) + : + + void + + + + { + + + + if + + ( + ! + $this + -> + mysqli + -> + isConnected + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + if + + ( + $this + -> + mysqli + -> + rollback + ( + ) + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + onError + ( + new + + TransactionRollbackException + ( + ) + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + commitTransaction + ( + ) + : + + void + + + + { + + + + if + + ( + ! + $this + -> + mysqli + -> + isConnected + ( + ) + ) + + { + + + + throw + + new + + ConnectException + ( + ) + ; + + + + } + + + + + if + + ( + $this + -> + mysqli + -> + commit + ( + ) + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + onError + ( + new + + TransactionCommitException + ( + ) + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + close + ( + ) + : + + void + + + + { + + + + if + + ( + false + + === + + $this + -> + mysqli + -> + isConnected + ( + ) + ) + + { + + + + return + ; + + + + } + + + + + try + + { + + + + /** + + + * No autocommit + + + * No transaction + + + * + + + * Default: commit all commands if transaction was NOT open + + + */ + + + + if + + ( + false + + === + + $this + -> + options + -> + isAutocommit + ( + ) + + && + + false + + === + + $this + -> + mysqli + -> + isTransactionOpen + ( + ) + ) + + { + + + + /** + + + * RELEASE clause causes the server to disconnect the current client session + + + * after terminating the current transaction. + + + */ + + + + $commit + + = + + $this + -> + options + -> + isPersistent + ( + ) + + + + ? + + $this + -> + mysqli + -> + commit + ( + ) + + + + : + + $this + -> + mysqli + -> + commitAndRelease + ( + ) + ; + + + + + if + + ( + false + + === + + $commit + ) + + { + + + + throw + + new + + TransactionCommitException + ( + ) + ; + + + + } + + + + } + + + + + /** + + + * Explicitly closing open connections and freeing result sets is optional but recommended + + + * Server already closed connection from server-side + + + */ + + + + if + + ( + false + + === + + $this + -> + mysqli + -> + close + ( + ) + ) + + { + + + + throw + + new + + DisconnectException + ( + ) + ; + + + + } + + + + } + + catch + + ( + MydbException + + $e + ) + + { + + + + $this + -> + onError + ( + $e + ) + ; + + + + } + + catch + + ( + Throwable + + $e + ) + + { + + + + $this + -> + onError + ( + new + + InternalException + ( + $e + -> + getMessage + ( + ) + ) + ) + ; + + + + } + + + + + if + + ( + $this + -> + terminating + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + environment + -> + gc_collect_cycles + ( + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + replace + ( + string + + $query + ) + : + + ? + string + + + + { + + + + return + + $this + -> + insert + ( + $query + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + insert + ( + string + + $query + ) + : + + ? + string + + + + { + + + + if + + ( + $this + -> + command + ( + $query + ) + ) + + { + + + + return + + (string) + + $this + -> + mysqli + -> + getInsertId + ( + ) + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint + + + * @throws \sql\MydbException + + + * @throws \sql\MydbException\ConnectException + + + */ + + + + public + + function + + select + ( + string + + $query + ) + : + + ? + array + + + + { + + + + return + + $this + -> + query + ( + $query + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + delete + ( + string + + $query + ) + : + + ? + int + + + + { + + + + if + + ( + $this + -> + command + ( + $query + ) + ) + + { + + + + $rows + + = + + $this + -> + mysqli + -> + getAffectedRows + ( + ) + ; + + + + if + + ( + null + + === + + $rows + ) + + { + + + + $this + -> + onError + ( + new + + DeleteException + ( + ) + , + + $query + ) + ; + + + + } + + + + + return + + $rows + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + update + ( + string + + $query + ) + : + + ? + int + + + + { + + + + if + + ( + $this + -> + command + ( + $query + ) + ) + + { + + + + $rows + + = + + $this + -> + mysqli + -> + getAffectedRows + ( + ) + ; + + + + if + + ( + null + + === + + $rows + ) + + { + + + + $this + -> + onError + ( + new + + UpdateException + ( + ) + , + + $query + ) + ; + + + + } + + + + + return + + $rows + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + deleteWhere + ( + array + + $whereFields + , + + string + + $table + , + + array + + $whereNotFields + + = + + [ + ] + ) + : + + ? + int + + + + { + + + + $query + + = + + $this + -> + queryBuilder + -> + buildDeleteWhere + ( + $table + , + + $whereFields + , + + $whereNotFields + ) + ; + + + + if + + ( + null + + === + + $query + ) + + { + + + + return + + null + ; + + + + } + + + + + return + + $this + -> + delete + ( + $query + ) + ; + + + + } + + + + + /** + + + * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + updateWhere + ( + array + + $update + , + + array + + $whereFields + , + + string + + $table + , + + array + + $whereNotFields + + = + + [ + ] + ) + : + + ? + int + + + + { + + + + $query + + = + + $this + -> + queryBuilder + -> + buildUpdateWhere + ( + $update + , + + $whereFields + , + + $table + , + + $whereNotFields + ) + ; + + + + + if + + ( + '' + + !== + + $query + + && + + null + + !== + + $query + ) + + { + + + + return + + $this + -> + update + ( + $query + ) + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] + + + * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] + + + * @param string $table 'mytable' + + + * @throws \sql\MydbException + + + */ + + + + public + + function + + updateWhereMany + ( + array + + $columnSetWhere + , + + array + + $where + , + + string + + $table + ) + : + + void + + + + { + + + + $sql + + = + + $this + -> + queryBuilder + -> + buildUpdateWhereMany + ( + $columnSetWhere + , + + $where + , + + $table + ) + ; + + + + $this + -> + update + ( + $sql + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\ConnectException + + + * @throws \sql\MydbException + + + * @psalm-param array<array-key, array<array-key, (float|int|string|\sql\MydbExpressionInterface|null)>> $data + + + * @param array<string> $cols + + + */ + + + + public + + function + + insertMany + ( + + + + array + + $data + , + + + + array + + $cols + , + + + + string + + $table + , + + + + bool + + $ignore + + = + + false + , + + + + string + + $onDuplicateSql + + = + + '' + , + + + + ) + : + + void + + { + + + + $sql + + = + + $this + -> + queryBuilder + -> + buildInsertMany + ( + $data + , + + $cols + , + + $table + , + + $ignore + , + + $onDuplicateSql + ) + ; + + + + $this + -> + insert + ( + $sql + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + */ + + + + public + + function + + replaceOne + ( + array + + $data + , + + string + + $table + ) + : + + ? + string + + + + { + + + + $query + + = + + $this + -> + queryBuilder + -> + insertOne + ( + $data + , + + $table + , + + MydbQueryBuilderInterface + :: + SQL_REPLACE + ) + ; + + + + + return + + $this + -> + replace + ( + $query + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + */ + + + + public + + function + + insertOne + ( + array + + $data + , + + string + + $table + ) + : + + ? + string + + + + { + + + + $query + + = + + $this + -> + queryBuilder + -> + insertOne + ( + $data + , + + $table + , + + MydbQueryBuilderInterface + :: + SQL_INSERT + ) + ; + + + + + return + + $this + -> + insert + ( + $query + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\EnvironmentException + + + * @throws \sql\MydbException\TerminationSignalException + + + * @throws \sql\MydbException\EventException + + + */ + + + + protected + + function + + sendClientRequest + ( + string + + $query + ) + : + + bool + + + + { + + + + $this + -> + environment + -> + startSignalsTrap + ( + ) + ; + + + + $this + -> + environment + -> + set_error_handler + ( + ) + ; + + + + + ( + new + + MydbEvent\InternalQueryBegin + ( + $query + ) + ) + -> + setListeners + ( + [ + $this + -> + eventListener + ] + ) + -> + notify + ( + ) + ; + + + + $result + + = + + $this + -> + mysqli + -> + realQuery + ( + $query + ) + ; + + + + ( + new + + MydbEvent\InternalQueryEnd + ( + $query + , + + $result + ) + ) + -> + setListeners + ( + [ + $this + -> + eventListener + ] + ) + -> + notify + ( + ) + ; + + + + + $this + -> + environment + -> + restore_error_handler + ( + ) + ; + + + + $hasPendingSignals + + = + + $this + -> + environment + -> + endSignalsTrap + ( + ) + ; + + + + if + + ( + null + + !== + + $hasPendingSignals + + && + + count + ( + $hasPendingSignals + ) + + > + + 0 + ) + + { + + + + throw + + new + + TerminationSignalException + ( + ) + ; + + + + } + + + + + return + + $result + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + protected + + function + + readServerResponse + ( + string + + $query + ) + : + + ? + MydbMysqliResultInterface + + + + { + + + + $packet + + = + + $this + -> + mysqli + -> + readServerResponse + ( + $this + -> + environment + ) + ; + + + + if + + ( + null + + === + + $packet + ) + + { + + + + return + + null + ; + + + + } + + + + + $warnings + + = + + $packet + -> + getWarnings + ( + ) + ; + + + + if + + ( + count + ( + $warnings + ) + + > + + 0 + ) + + { + + + + foreach + + ( + $warnings + + as + + $warningMessage + ) + + { + + + + $this + -> + onWarning + ( + $warningMessage + , + + $query + ) + ; + + + + } + + + + } + + + + + $errorMessage + + = + + $packet + -> + getError + ( + ) + ; + + + + if + + ( + null + + !== + + $errorMessage + ) + + { + + + + if + + ( + $this + -> + mysqli + -> + isServerGone + ( + ) + ) + + { + + + + /** + + + * server closed connection, do close() and ignore result of operation + + + */ + + + + $this + -> + mysqli + -> + close + ( + ) + ; + + + + $this + -> + onError + ( + new + + ServerGoneException + ( + $errorMessage + ) + , + + $query + ) + ; + + + + } + + else + + { + + + + $this + -> + onError + ( + new + + InternalException + ( + $errorMessage + ) + , + + $query + ) + ; + + + + } + + + + } + + + + + return + + $packet + ; + + + + } + + + + + protected + + function + + onWarning + ( + string + + $warningMessage + , + + ? + string + + $sql + + = + + null + ) + : + + void + + + + { + + + + $this + -> + logger + -> + warning + ( + $warningMessage + , + + [ + 'sql' + + => + + $sql + ] + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException + + + */ + + + + protected + + function + + onError + ( + MydbException + + $exception + , + + ? + string + + $sql + + = + + null + ) + : + + void + + + + { + + + + $this + -> + logger + -> + error + ( + $exception + -> + getMessage + ( + ) + , + + [ + 'sql' + + => + + $sql + ] + ) + ; + + + + + throw + + $exception + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\DisconnectException + + + * @throws \sql\MydbException\TransactionAutocommitException + + + * @throws \sql\MydbException\EnvironmentException + + + * @throws \sql\MydbException\EventException + + + * @throws \sql\MydbException + + + * @SuppressWarnings(PHPMD.NPathComplexity) + + + * @todo reduce NPathComplexity + + + */ + + + + protected + + function + + connect + ( + int + + $retry + + = + + 0 + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + -> + isConnected + ( + ) + ) + + { + + + + return + + true + ; + + + + } + + + + + $connected + + = + + false + ; + + + + $init0 + + = + + $this + -> + mysqli + -> + init + ( + ) + ; + + + + $init1 + + = + + $init0 + + && + + $this + -> + mysqli + -> + setTransportOptions + ( + $this + -> + options + , + + $this + -> + environment + ) + ; + + + + + if + + ( + $init0 + + && + + $init1 + ) + + { + + + + $reportingLevel + + = + + $this + -> + environment + -> + error_reporting + ( + $this + -> + options + -> + getErrorReporting + ( + ) + ) + ; + + + + + $host + + = + + ( + $this + -> + options + -> + isPersistent + ( + ) + + ? + + 'p:' + + : + + '' + ) + + . + + $this + -> + credentials + -> + getHost + ( + ) + ; + + + + $dbname + + = + + $this + -> + credentials + -> + getDbname + ( + ) + ; + + + + + ( + new + + MydbEvent\InternalConnectionBegin + ( + $host + , + + $dbname + ) + ) + + + + -> + setListeners + ( + [ + $this + -> + eventListener + ] + ) + -> + notify + ( + ) + ; + + + + $connected + + = + + $this + -> + mysqli + -> + realConnect + ( + + + + $host + , + + + + $this + -> + credentials + -> + getUsername + ( + ) + , + + + + $this + -> + credentials + -> + getPasswd + ( + ) + , + + + + $dbname + , + + + + $this + -> + credentials + -> + getPort + ( + ) + , + + + + $this + -> + credentials + -> + getSocket + ( + ) + , + + + + $this + -> + credentials + -> + getFlags + ( + ) + + + + ) + ; + + + + ( + new + + MydbEvent\InternalConnectionEnd + ( + $host + , + + $dbname + , + + $connected + ) + ) + + + + -> + setListeners + ( + [ + $this + -> + eventListener + ] + ) + -> + notify + ( + ) + ; + + + + + $this + -> + environment + -> + error_reporting + ( + $reportingLevel + ) + ; + + + + } + + + + + if + + ( + false + + === + + $connected + ) + + { + + + + $errorNumber + + = + + (string) + + ( + $this + -> + mysqli + -> + getConnectErrno + ( + ) + + ? + : + + $this + -> + mysqli + -> + getErrNo + ( + ) + ) + ; + + + + $errorText + + = + + (string) + + ( + $this + -> + mysqli + -> + getConnectError + ( + ) + + ? + : + + $this + -> + mysqli + -> + getError + ( + ) + ) + ; + + + + + if + + ( + false + + === + + $this + -> + mysqli + -> + close + ( + ) + ) + + { + + + + throw + + new + + DisconnectException + ( + ) + ; + + + + } + + + + + $this + -> + onWarning + ( + $errorNumber + + . + + ' ' + + . + + $errorText + ) + ; + + + + + if + + ( + $retry + + > + + 0 + ) + + { + + + + -- + $retry + ; + + + + + return + + $this + -> + connect + ( + $retry + ) + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + $this + -> + mysqli + -> + mysqliReport + ( + $this + -> + options + -> + getClientErrorLevel + ( + ) + ) + ; + + + + + if + + ( + false + + === + + $this + -> + mysqli + -> + autocommit + ( + $this + -> + options + -> + isAutocommit + ( + ) + ) + ) + + { + + + + throw + + new + + TransactionAutocommitException + ( + ) + ; + + + + } + + + + + /** + + + * Here's a summary of what variables are set by each statement: SET NAMES vs SET CHARSET + + + * + + + * Variable SET NAMES SET CHARSET + + + * character_set_client argument argument + + + * character_set_results argument argument + + + * character_set_connection argument default for default db + + + * collation_connection argument* default for default db + + + * + + + * SET CHARSET doesn't set the connection charset to the charset you specify in the argument, + + + * instead it sets it to the charset for your current default database + + + */ + + + + $defaults + + = + + $this + -> + mysqli + -> + realQuery + ( + + + + sprintf + ( + + + + "SET time_zone = '%s', wait_timeout = %d, names '%s'" + , + + + + $this + -> + options + -> + getTimeZone + ( + ) + , + + + + $this + -> + options + -> + getNonInteractiveTimeout + ( + ) + , + + + + $this + -> + options + -> + getCharset + ( + ) + + + + ) + + + + ) + ; + + + + + if + + ( + false + + === + + $defaults + ) + + { + + + + throw + + new + + ConnectDefaultsException + ( + ) + ; + + + + } + + + + + $isoLevel + + = + + $this + -> + options + -> + getTransactionIsolationLevel + ( + ) + ; + + + + if + + ( + null + + !== + + $isoLevel + + && + + false + + === + + $this + -> + mysqli + -> + setTransactionIsolationLevel + ( + $isoLevel + ) + ) + + { + + + + throw + + new + + TransactionIsolationException + ( + ) + ; + + + + } + + + + + if + + ( + $this + -> + options + -> + isReadonly + ( + ) + + && + + false + + === + + $this + -> + mysqli + -> + beginTransactionReadonly + ( + ) + ) + + { + + + + throw + + new + + TransactionAutocommitException + ( + ) + ; + + + + } + + + + + return + + true + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbCredentials.php.xml b/php/phpunit/xml/MydbCredentials.php.xml new file mode 100644 index 00000000000..aea19d5061e --- /dev/null +++ b/php/phpunit/xml/MydbCredentials.php.xml @@ -0,0 +1,1763 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbCredentials + + implements + + MydbCredentialsInterface + + + { + + + + + /** + + + * Database credentials - hostname + + + * Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter, + + + * the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + string + + $host + ; + + + + + /** + + + * Database credentials - username + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + string + + $username + ; + + + + + /** + + + * Database credentials - password + + + * If provided or null, the MySQL server will attempt to authenticate the user against those user records + + + * which have no password only. This allows one username to be used with different permissions + + + * (depending on if a password as provided or not). + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + string + + $passwd + ; + + + + + /** + + + * Database credentials - database name + + + * If provided will specify the default database to be used when performing queries. + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + string + + $dbname + ; + + + + + /** + + + * Database credentials - port + + + * Specifies the port number to attempt to connect to the MySQL server. + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + ? + int + + $port + ; + + + + + /** + + + * Database credentials - socket + + + * Specifies the socket or named pipe that should be used. + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + ? + string + + $socket + ; + + + + + /** + + + * Database credentials - connection flags + + + * With the parameter flags you can set different connection options + + + * MYSQLI_CLIENT_COMPRESS - Use compression protocol + + + * MYSQLI_CLIENT_SSL - Use SSL (encryption) + + + * MULTI_STATEMENT flag is not supported in PHP + + + * + + + * @see https://www.php.net/manual/en/mysqli.real-connect.php + + + */ + + + + protected + + int + + $flags + ; + + + + + public + + function + + __construct + ( + + + + string + + $host + , + + + + string + + $username + , + + + + string + + $passwd + , + + + + string + + $dbname + , + + + + ? + int + + $port + + = + + null + , + + + + ? + string + + $socket + + = + + null + , + + + + int + + $flags + + = + + 0 + , + + + + ) + + { + + + + $this + -> + host + + = + + $host + ; + + + + $this + -> + username + + = + + $username + ; + + + + $this + -> + passwd + + = + + $passwd + ; + + + + $this + -> + dbname + + = + + $dbname + ; + + + + $this + -> + port + + = + + $port + ; + + + + $this + -> + socket + + = + + $socket + ; + + + + $this + -> + flags + + = + + $flags + ; + + + + } + + + + + public + + function + + getHost + ( + ) + : + + string + + + + { + + + + return + + $this + -> + host + ; + + + + } + + + + + public + + function + + getUsername + ( + ) + : + + string + + + + { + + + + return + + $this + -> + username + ; + + + + } + + + + + public + + function + + getPasswd + ( + ) + : + + string + + + + { + + + + return + + $this + -> + passwd + ; + + + + } + + + + + public + + function + + getDbname + ( + ) + : + + string + + + + { + + + + return + + $this + -> + dbname + ; + + + + } + + + + + public + + function + + getPort + ( + ) + : + + ? + int + + + + { + + + + return + + $this + -> + port + ; + + + + } + + + + + public + + function + + getSocket + ( + ) + : + + ? + string + + + + { + + + + return + + $this + -> + socket + ; + + + + } + + + + + public + + function + + getFlags + ( + ) + : + + int + + + + { + + + + return + + $this + -> + flags + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbCredentialsInterface.php.xml b/php/phpunit/xml/MydbCredentialsInterface.php.xml new file mode 100644 index 00000000000..063e15822aa --- /dev/null +++ b/php/phpunit/xml/MydbCredentialsInterface.php.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbCredentialsInterface + + + { + + + + public + + function + + getHost + ( + ) + : + + string + ; + + + + + public + + function + + getUsername + ( + ) + : + + string + ; + + + + + public + + function + + getPasswd + ( + ) + : + + string + ; + + + + + public + + function + + getDbname + ( + ) + : + + string + ; + + + + + public + + function + + getPort + ( + ) + : + + ? + int + ; + + + + + public + + function + + getSocket + ( + ) + : + + ? + string + ; + + + + + public + + function + + getFlags + ( + ) + : + + int + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbEnvironment.php.xml b/php/phpunit/xml/MydbEnvironment.php.xml new file mode 100644 index 00000000000..040a93f402d --- /dev/null +++ b/php/phpunit/xml/MydbEnvironment.php.xml @@ -0,0 +1,2923 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + sql\MydbException\EnvironmentException + ; + + + use + + function + + count + ; + + + use + + function + + error_reporting + ; + + + use + + function + + gc_collect_cycles + ; + + + use + + function + + gc_enabled + ; + + + use + + function + + ignore_user_abort + ; + + + use + + function + + ini_set + ; + + + use + + function + + pcntl_signal + ; + + + use + + function + + pcntl_signal_dispatch + ; + + + use + + function + + pcntl_signal_get_handler + ; + + + use + + function + + restore_error_handler + ; + + + use + + function + + set_error_handler + ; + + + use + + const + + E_ALL + ; + + + use + + const + + E_STRICT + ; + + + use + + const + + SIG_DFL + ; + + + use + + const + + SIGHUP + ; + + + use + + const + + SIGINT + ; + + + use + + const + + SIGTERM + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbEnvironment + + implements + + MydbEnvironmentInterface + + + { + + + + + /** + + + * @var array<int> + + + */ + + + + protected + + array + + $knownSignals + + = + + [ + SIGTERM + , + + SIGINT + , + + SIGHUP + ] + ; + + + + + /** + + + * Any signals that were trapped during custom signal handler + + + * + + + * @var array<int> + + + */ + + + + protected + + array + + $trappedSignals + + = + + [ + ] + ; + + + + + /** + + + * Backup of signal handlers + + + * Original signal handler, which replaced by custon trap + + + * @psalm-var array<int, int|resource|string> + + + */ + + + + protected + + array + + $trappedHandlers + + = + + [ + ] + ; + + + + + /** + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + * @SuppressWarnings("camelCase") + + + * @see https://www.php.net/manual/en/function.gc-collect-cycles + + + */ + + + + public + + function + + gc_collect_cycles + ( + ) + : + + void + + + + { + + + + if + + ( + ! + gc_enabled + ( + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + return + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + gc_collect_cycles + ( + ) + ; + + + + } + + + + + /** + + + * Restore previous PHP error handler + + + * + + + * @see https://www.php.net/manual/en/function.restore-error-handler.php + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + restore_error_handler + ( + ) + : + + void + + + + { + + + + restore_error_handler + ( + ) + ; + + + + } + + + + + /** + + + * Set custom PHP error handler + + + * + + + * @param callable|null $callback + + + * @see https://www.php.net/manual/en/function.set-error-handler + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + set_error_handler + ( + ? + callable + + $callback + + = + + null + , + + int + + $error_levels + + = + + E_ALL + | + E_STRICT + ) + : + + void + + + + { + + + + /** @var callable(int, string, string=, int=, array<array-key, mixed>=):bool|null $newHandler */ + + + + $newHandler + + = + + $callback + + ?? + + $this + -> + getNullErrorHandler + ( + ) + ; + + + + + set_error_handler + ( + $newHandler + , + + $error_levels + ) + ; + + + + } + + + + + /** + + + * Set mysqlnd.net_read_timeout php ini value + + + * + + + * mysqlnd and the MySQL Client Library, libmysqlclient use different networking APIs. + + + * mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level network calls. + + + * PHP, by default, sets a read timeout of 60s for streams. + + + * This is set via php.ini, default_socket_timeout. + + + * This default applies to all streams that set no other timeout value. + + + * mysqlnd does not set any other value and therefore connections of long running queries can be disconnected + + + * after default_socket_timeout seconds resulting in an error message 2006 - MySQL Server has gone away. + + + * The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day) + + + * and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout. + + + * The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout. + + + * + + + * mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd. + + + * mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout. + + + * Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library + + + * and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and, + + + * prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation. + + + * + + + * @throws \sql\MydbException\EnvironmentException + + + * @see https://www.php.net/manual/en/mysqlnd.config.php + + + */ + + + + public + + function + + setMysqlndNetReadTimeout + ( + string + + $timeoutSeconds + ) + : + + bool + + + + { + + + + return + + (bool) + + $this + -> + ini_set + ( + 'mysqlnd.net_read_timeout' + , + + $timeoutSeconds + ) + ; + + + + } + + + + + /** + + + * Sets which PHP errors are reported + + + * + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + * @SuppressWarnings("camelCase") + + + * @see https://www.php.net/manual/en/function.error-reporting + + + */ + + + + public + + function + + error_reporting + ( + int + + $level + ) + : + + int + + + + { + + + + return + + error_reporting + ( + $level + ) + ; + + + + } + + + + + /** + + + * Set whether a client disconnect should abort script execution (does not affect CLI) + + + * + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + * @SuppressWarnings("camelCase") + + + * @see https://www.php.net/manual/en/function.ignore-user-abort + + + */ + + + + public + + function + + ignore_user_abort + ( + ) + : + + int + + + + { + + + + return + + ignore_user_abort + ( + ) + ; + + + + } + + + + + /** + + + * Sets the value of a configuration option + + + * + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + * @SuppressWarnings("camelCase") + + + * @throws \sql\MydbException\EnvironmentException + + + * @see https://www.php.net/manual/en/function.ini-set + + + */ + + + + public + + function + + ini_set + ( + string + + $key + , + + string + + $value + ) + : + + string + + + + { + + + + $result + + = + + ini_set + ( + $key + , + + $value + ) + ; + + + + if + + ( + false + + === + + $result + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + EnvironmentException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + return + + $result + ; + + + + } + + + + + /** + + + * Disable custom signal handler + + + * + + + * @see https://wiki.php.net/rfc/async_signals + + + * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/ + + + * @see https://www.php.net/manual/en/function.pcntl-signal + + + * + + + * @return array<int>|null array of trapped signals + + + * @throws \sql\MydbException\EnvironmentException + + + */ + + + + public + + function + + endSignalsTrap + ( + ) + : + + ? + array + + + + { + + + + /** + + + * Process signals + + + */ + + + + if + + ( + ! + pcntl_signal_dispatch + ( + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + EnvironmentException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + $trappedSignals + + = + + $this + -> + trappedSignals + ; + + + + foreach + + ( + $this + -> + knownSignals + + as + + $signalNumber + ) + + { + + + + /** + + + * Reset signals to previous/default handler + + + */ + + + + $newHandler + + = + + $this + -> + trappedHandlers + [ + $signalNumber + ] + + ?? + + SIG_DFL + ; + + + + + /** + + + * @psalm-suppress PossiblyInvalidArgument + + + */ + + + + if + + ( + ! + pcntl_signal + ( + $signalNumber + , + + $newHandler + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + EnvironmentException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + unset + ( + $this + -> + trappedHandlers + [ + $signalNumber + ] + ) + ; + + + + } + + + + $this + -> + trappedSignals + + = + + [ + ] + ; + + + + + return + + count + ( + $trappedSignals + ) + + > + + 0 + + + + ? + + $trappedSignals + + + + : + + null + ; + + + + } + + + + + /** + + + * Enable custom signal handler + + + * + + + * @see https://wiki.php.net/rfc/async_signals + + + * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/ + + + * @see https://www.php.net/manual/en/function.pcntl-signal + + + * @throws \sql\MydbException\EnvironmentException + + + */ + + + + public + + function + + startSignalsTrap + ( + ) + : + + void + + + + { + + + + $this + -> + trappedSignals + + = + + [ + ] + ; + + + + + $signalHandler + + = + + function + + ( + int + + $signalNumber + ) + : + + void + + { + + + + $this + -> + trappedSignals + [ + ] + + = + + $signalNumber + ; + + + + } + ; + + + + + foreach + + ( + $this + -> + knownSignals + + as + + $signalNumber + ) + + { + + + + $originalNandler + + = + + pcntl_signal_get_handler + ( + $signalNumber + ) + ; + + + + $this + -> + trappedHandlers + [ + $signalNumber + ] + + = + + $originalNandler + ; + + + + + if + + ( + ! + pcntl_signal + ( + $signalNumber + , + + $signalHandler + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + EnvironmentException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + } + + + + } + + + + + /** + + + * Error handler that does nothing and does not chain + + + * @see https://www.php.net/manual/en/function.set-error-handler + + + */ + + + + protected + + function + + getNullErrorHandler + ( + ) + : + + callable + + + + { + + + + return + + static + + function + + ( + ) + : + + bool + + { + + + + return + + true + ; + + + + } + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEnvironmentInterface.php.xml b/php/phpunit/xml/MydbEnvironmentInterface.php.xml new file mode 100644 index 00000000000..95f78959266 --- /dev/null +++ b/php/phpunit/xml/MydbEnvironmentInterface.php.xml @@ -0,0 +1,361 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + const + + E_ALL + ; + + + use + + const + + E_STRICT + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbEnvironmentInterface + + + { + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + gc_collect_cycles + ( + ) + : + + void + ; + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + restore_error_handler + ( + ) + : + + void + ; + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + set_error_handler + ( + ? + callable + + $callback + + = + + null + , + + int + + $error_levels + + = + + E_ALL + | + E_STRICT + ) + : + + void + ; + + + + + public + + function + + setMysqlndNetReadTimeout + ( + string + + $timeoutSeconds + ) + : + + bool + ; + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + error_reporting + ( + int + + $level + ) + : + + int + ; + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + ignore_user_abort + ( + ) + : + + int + ; + + + + + /** + + + * @SuppressWarnings("camelCase") + + + * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps + + + */ + + + + public + + function + + ini_set + ( + string + + $key + , + + string + + $value + ) + : + + string + ; + + + + + public + + function + + endSignalsTrap + ( + ) + : + + ? + array + ; + + + + + public + + function + + startSignalsTrap + ( + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent.php.xml b/php/phpunit/xml/MydbEvent.php.xml new file mode 100644 index 00000000000..2e97baeed77 --- /dev/null +++ b/php/phpunit/xml/MydbEvent.php.xml @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + sql\MydbException\EventException + ; + + + + abstract + + class + + MydbEvent + + implements + + MydbEventInterface + , + + MydbEventMetadataInterface + + + { + + + + + /** + + + * @psalm-return array<array-key, mixed>|null + + + */ + + + + abstract + + public + + function + + getEventMetadata + ( + ) + : + + ? + array + ; + + + + + /** + + + * @return array<\sql\MydbListenerInterface> + + + */ + + + + abstract + + protected + + function + + getListeners + ( + ) + : + + array + ; + + + + + /** + + + * @throws \sql\MydbException\EventException + + + */ + + + + public + + function + + notify + ( + ) + : + + void + + + + { + + + + foreach + + ( + $this + -> + getListeners + ( + ) + + as + + $listenerInstance + ) + + { + + + + if + + ( + $listenerInstance + + instanceof + + MydbListenerInterface + ) + + { + + + + if + + ( + false + + === + + $listenerInstance + -> + observe + ( + $this + ) + ) + + { + + + + break + ; + + + + } + + + + } + + else + + { + + + + throw + + new + + EventException + ( + ) + ; + + + + } + + + + } + + + + } + + + + + public + + function + + getEventName + ( + ) + : + + string + + + + { + + + + return + + static + :: + class + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/ExampleEvent.php.xml b/php/phpunit/xml/MydbEvent/ExampleEvent.php.xml new file mode 100644 index 00000000000..cfda0bd7463 --- /dev/null +++ b/php/phpunit/xml/MydbEvent/ExampleEvent.php.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + use + + sql\MydbEvent + ; + + + + class + + ExampleEvent + + extends + + MydbEvent + + + { + + + + protected + + function + + getListeners + ( + ) + : + + array + + + + { + + + + return + + [ + + + + ( + new + + ExampleListener + ( + ) + ) + -> + onMyEvent + ( + ) + , + + + + ( + new + + ExampleListener + ( + ) + ) + -> + onMySomeEvent + ( + ) + , + + + + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/ExampleListener.php.xml b/php/phpunit/xml/MydbEvent/ExampleListener.php.xml new file mode 100644 index 00000000000..02b6e8b01bf --- /dev/null +++ b/php/phpunit/xml/MydbEvent/ExampleListener.php.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + use + + function + + serialize + ; + + + + class + + ExampleListener + + + { + + + + + public + + function + + onMySomeEvent + ( + ) + : + + callable + + + + { + + + + return + + function + + ( + array + + $payload + ) + : + + void + + { + + + + $this + -> + doSomeWork + ( + $payload + ) + ; + + + + } + ; + + + + } + + + + + public + + function + + onMyEvent + ( + ) + : + + callable + + + + { + + + + return + + function + + ( + array + + $payload + ) + : + + void + + { + + + + $this + -> + doSomeWork + ( + $payload + ) + ; + + + + } + ; + + + + } + + + + + protected + + function + + doSomeWork + ( + array + + $data + ) + : + + string + + + + { + + + + return + + serialize + ( + $data + ) + + . + + "\n" + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/InternalConnectionBegin.php.xml b/php/phpunit/xml/MydbEvent/InternalConnectionBegin.php.xml new file mode 100644 index 00000000000..8b5ebd18e5d --- /dev/null +++ b/php/phpunit/xml/MydbEvent/InternalConnectionBegin.php.xml @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + class + + InternalConnectionBegin + + extends + + InternalEvent + + + { + + + + public + + function + + __construct + ( + string + + $host + , + + string + + $dbname + ) + + + + { + + + + $this + -> + data + + = + + [ + + + + 'host' + + => + + $host + , + + + + 'dbname' + + => + + $dbname + , + + + + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/InternalConnectionEnd.php.xml b/php/phpunit/xml/MydbEvent/InternalConnectionEnd.php.xml new file mode 100644 index 00000000000..61c62666f1a --- /dev/null +++ b/php/phpunit/xml/MydbEvent/InternalConnectionEnd.php.xml @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + class + + InternalConnectionEnd + + extends + + InternalEvent + + + { + + + + public + + function + + __construct + ( + string + + $host + , + + string + + $dbname + , + + bool + + $success + ) + + + + { + + + + $this + -> + data + + = + + [ + + + + 'host' + + => + + $host + , + + + + 'dbname' + + => + + $dbname + , + + + + 'success' + + => + + $success + , + + + + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/InternalEvent.php.xml b/php/phpunit/xml/MydbEvent/InternalEvent.php.xml new file mode 100644 index 00000000000..f865ff5ce39 --- /dev/null +++ b/php/phpunit/xml/MydbEvent/InternalEvent.php.xml @@ -0,0 +1,553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + use + + sql\MydbEvent + ; + + + use + + sql\MydbEventInterface + ; + + + + class + + InternalEvent + + extends + + MydbEvent + + + { + + + + + /** + + + * @psalm-var array<\sql\MydbListenerInterface> + + + */ + + + + protected + + array + + $listeners + + = + + [ + ] + ; + + + + + /** + + + * @psalm-var array<array-key, mixed>|null + + + */ + + + + protected + + ? + array + + $data + + = + + null + ; + + + + + public + + function + + getEventMetadata + ( + ) + : + + ? + array + + + + { + + + + return + + $this + -> + data + ; + + + + } + + + + + /** + + + * @psalm-param array<\sql\MydbListenerInterface> $listeners + + + */ + + + + public + + function + + setListeners + ( + array + + $listeners + ) + : + + MydbEventInterface + + + + { + + + + $this + -> + listeners + + = + + $listeners + ; + + + + + return + + $this + ; + + + + } + + + + + /** + + + * @psalm-return array<\sql\MydbListenerInterface> + + + */ + + + + protected + + function + + getListeners + ( + ) + : + + array + + + + { + + + + return + + $this + -> + listeners + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/InternalQueryBegin.php.xml b/php/phpunit/xml/MydbEvent/InternalQueryBegin.php.xml new file mode 100644 index 00000000000..55c156484a0 --- /dev/null +++ b/php/phpunit/xml/MydbEvent/InternalQueryBegin.php.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + class + + InternalQueryBegin + + extends + + InternalEvent + + + { + + + + public + + function + + __construct + ( + string + + $sql + ) + + + + { + + + + $this + -> + data + + = + + [ + + + + 'sql' + + => + + $sql + , + + + + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/InternalQueryEnd.php.xml b/php/phpunit/xml/MydbEvent/InternalQueryEnd.php.xml new file mode 100644 index 00000000000..0576e54b1de --- /dev/null +++ b/php/phpunit/xml/MydbEvent/InternalQueryEnd.php.xml @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbEvent + ; + + + + class + + InternalQueryEnd + + extends + + InternalEvent + + + { + + + + public + + function + + __construct + ( + string + + $sql + , + + bool + + $success + ) + + + + { + + + + $this + -> + data + + = + + [ + + + + 'sql' + + => + + $sql + , + + + + 'success' + + => + + $success + , + + + + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbEvent/index.html b/php/phpunit/xml/MydbEvent/index.html new file mode 100644 index 00000000000..bf18df4d485 --- /dev/null +++ b/php/phpunit/xml/MydbEvent/index.html @@ -0,0 +1,102 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml/MydbEvent

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ExampleEvent.php.xml

                                                                                                                                                                                                                                                                                                          ExampleEvent.php.xml +
                                                                                                                                                                                                                                                                                                          6 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ExampleListener.php.xml

                                                                                                                                                                                                                                                                                                          ExampleListener.php.xml +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalConnectionBegin.php.xml

                                                                                                                                                                                                                                                                                                          InternalConnectionBegin.php.xml +
                                                                                                                                                                                                                                                                                                          22 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalConnectionEnd.php.xml

                                                                                                                                                                                                                                                                                                          InternalConnectionEnd.php.xml +
                                                                                                                                                                                                                                                                                                          27 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalEvent.php.xml

                                                                                                                                                                                                                                                                                                          InternalEvent.php.xml +
                                                                                                                                                                                                                                                                                                          30 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalQueryBegin.php.xml

                                                                                                                                                                                                                                                                                                          InternalQueryBegin.php.xml +
                                                                                                                                                                                                                                                                                                          16 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalQueryEnd.php.xml

                                                                                                                                                                                                                                                                                                          InternalQueryEnd.php.xml +
                                                                                                                                                                                                                                                                                                          21 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/MydbEventInterface.php.xml b/php/phpunit/xml/MydbEventInterface.php.xml new file mode 100644 index 00000000000..df21a82f232 --- /dev/null +++ b/php/phpunit/xml/MydbEventInterface.php.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + interface + + MydbEventInterface + + + { + + + + public + + function + + notify + ( + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbEventMetadataInterface.php.xml b/php/phpunit/xml/MydbEventMetadataInterface.php.xml new file mode 100644 index 00000000000..bf4dc849783 --- /dev/null +++ b/php/phpunit/xml/MydbEventMetadataInterface.php.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + interface + + MydbEventMetadataInterface + + + { + + + + /** + + + * @psalm-return array<array-key, mixed>|null + + + */ + + + + public + + function + + getEventMetadata + ( + ) + : + + ? + array + ; + + + + + public + + function + + getEventName + ( + ) + : + + string + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbException.php.xml b/php/phpunit/xml/MydbException.php.xml new file mode 100644 index 00000000000..d5672a98731 --- /dev/null +++ b/php/phpunit/xml/MydbException.php.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + Exception + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbException + + extends + + Exception + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/AsyncException.php.xml b/php/phpunit/xml/MydbException/AsyncException.php.xml new file mode 100644 index 00000000000..4adc0c93192 --- /dev/null +++ b/php/phpunit/xml/MydbException/AsyncException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + AsyncException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/ConnectDefaultsException.php.xml b/php/phpunit/xml/MydbException/ConnectDefaultsException.php.xml new file mode 100644 index 00000000000..14481811438 --- /dev/null +++ b/php/phpunit/xml/MydbException/ConnectDefaultsException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + ConnectDefaultsException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/ConnectException.php.xml b/php/phpunit/xml/MydbException/ConnectException.php.xml new file mode 100644 index 00000000000..e3ebe9ea52e --- /dev/null +++ b/php/phpunit/xml/MydbException/ConnectException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + ConnectException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/DeleteException.php.xml b/php/phpunit/xml/MydbException/DeleteException.php.xml new file mode 100644 index 00000000000..09c43a67e6c --- /dev/null +++ b/php/phpunit/xml/MydbException/DeleteException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + DeleteException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/DisconnectException.php.xml b/php/phpunit/xml/MydbException/DisconnectException.php.xml new file mode 100644 index 00000000000..26593ca8370 --- /dev/null +++ b/php/phpunit/xml/MydbException/DisconnectException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + DisconnectException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/EnvironmentException.php.xml b/php/phpunit/xml/MydbException/EnvironmentException.php.xml new file mode 100644 index 00000000000..ceab9df0219 --- /dev/null +++ b/php/phpunit/xml/MydbException/EnvironmentException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + EnvironmentException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/EventException.php.xml b/php/phpunit/xml/MydbException/EventException.php.xml new file mode 100644 index 00000000000..4935fa8aeef --- /dev/null +++ b/php/phpunit/xml/MydbException/EventException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + EventException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/InternalException.php.xml b/php/phpunit/xml/MydbException/InternalException.php.xml new file mode 100644 index 00000000000..fcad752f9ea --- /dev/null +++ b/php/phpunit/xml/MydbException/InternalException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + InternalException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/LoggerException.php.xml b/php/phpunit/xml/MydbException/LoggerException.php.xml new file mode 100644 index 00000000000..691c4209eda --- /dev/null +++ b/php/phpunit/xml/MydbException/LoggerException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + LoggerException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/OptionException.php.xml b/php/phpunit/xml/MydbException/OptionException.php.xml new file mode 100644 index 00000000000..fe4b5d0d594 --- /dev/null +++ b/php/phpunit/xml/MydbException/OptionException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + OptionException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/QueryBuilderEscapeException.php.xml b/php/phpunit/xml/MydbException/QueryBuilderEscapeException.php.xml new file mode 100644 index 00000000000..1177b9db9db --- /dev/null +++ b/php/phpunit/xml/MydbException/QueryBuilderEscapeException.php.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + use + + Throwable + ; + + + use + + function + + sprintf + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + QueryBuilderEscapeException + + extends + + MydbException + + + { + + + + protected + + const + + MESSAGE_TEMPLATE + + = + + 'Failed to escape value: %s' + ; + + + + + public + + function + + __construct + ( + string + + $message + + = + + "" + , + + int + + $code + + = + + 0 + , + + ? + Throwable + + $previous + + = + + null + ) + + + + { + + + + parent + :: + __construct + ( + sprintf + ( + self + :: + MESSAGE_TEMPLATE + , + + $message + ) + , + + $code + , + + $previous + ) + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/QueryBuilderException.php.xml b/php/phpunit/xml/MydbException/QueryBuilderException.php.xml new file mode 100644 index 00000000000..12c0b73c05b --- /dev/null +++ b/php/phpunit/xml/MydbException/QueryBuilderException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + QueryBuilderException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/RegistryException.php.xml b/php/phpunit/xml/MydbException/RegistryException.php.xml new file mode 100644 index 00000000000..c5c2c2a22d8 --- /dev/null +++ b/php/phpunit/xml/MydbException/RegistryException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + RegistryException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/ServerGoneException.php.xml b/php/phpunit/xml/MydbException/ServerGoneException.php.xml new file mode 100644 index 00000000000..3360a5b9707 --- /dev/null +++ b/php/phpunit/xml/MydbException/ServerGoneException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + ServerGoneException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TerminationSignalException.php.xml b/php/phpunit/xml/MydbException/TerminationSignalException.php.xml new file mode 100644 index 00000000000..d205264dd37 --- /dev/null +++ b/php/phpunit/xml/MydbException/TerminationSignalException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TerminationSignalException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionAutocommitException.php.xml b/php/phpunit/xml/MydbException/TransactionAutocommitException.php.xml new file mode 100644 index 00000000000..eda8879e789 --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionAutocommitException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionAutocommitException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionBeginException.php.xml b/php/phpunit/xml/MydbException/TransactionBeginException.php.xml new file mode 100644 index 00000000000..35296fe346b --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionBeginException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionBeginException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionBeginReadonlyException.php.xml b/php/phpunit/xml/MydbException/TransactionBeginReadonlyException.php.xml new file mode 100644 index 00000000000..f9ef55a7641 --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionBeginReadonlyException.php.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionBeginReadonlyException + + extends + + TransactionBeginException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionBeginReadwriteException.php.xml b/php/phpunit/xml/MydbException/TransactionBeginReadwriteException.php.xml new file mode 100644 index 00000000000..dfbd671d032 --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionBeginReadwriteException.php.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionBeginReadwriteException + + extends + + TransactionBeginException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionCommitException.php.xml b/php/phpunit/xml/MydbException/TransactionCommitException.php.xml new file mode 100644 index 00000000000..2044e930aaf --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionCommitException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionCommitException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionIsolationException.php.xml b/php/phpunit/xml/MydbException/TransactionIsolationException.php.xml new file mode 100644 index 00000000000..b5f83c60e2c --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionIsolationException.php.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionIsolationException + + extends + + TransactionBeginException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/TransactionRollbackException.php.xml b/php/phpunit/xml/MydbException/TransactionRollbackException.php.xml new file mode 100644 index 00000000000..5d4de9f9a63 --- /dev/null +++ b/php/phpunit/xml/MydbException/TransactionRollbackException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + TransactionRollbackException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/UpdateException.php.xml b/php/phpunit/xml/MydbException/UpdateException.php.xml new file mode 100644 index 00000000000..ebf59f20317 --- /dev/null +++ b/php/phpunit/xml/MydbException/UpdateException.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbException + ; + + + + use + + sql\MydbException + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category exceptions + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + UpdateException + + extends + + MydbException + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbException/index.html b/php/phpunit/xml/MydbException/index.html new file mode 100644 index 00000000000..ebdb2ffbde5 --- /dev/null +++ b/php/phpunit/xml/MydbException/index.html @@ -0,0 +1,230 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml/MydbException

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AsyncException.php.xml

                                                                                                                                                                                                                                                                                                          AsyncException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ConnectDefaultsException.php.xml

                                                                                                                                                                                                                                                                                                          ConnectDefaultsException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ConnectException.php.xml

                                                                                                                                                                                                                                                                                                          ConnectException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DeleteException.php.xml

                                                                                                                                                                                                                                                                                                          DeleteException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DisconnectException.php.xml

                                                                                                                                                                                                                                                                                                          DisconnectException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EnvironmentException.php.xml

                                                                                                                                                                                                                                                                                                          EnvironmentException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EventException.php.xml

                                                                                                                                                                                                                                                                                                          EventException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalException.php.xml

                                                                                                                                                                                                                                                                                                          InternalException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          LoggerException.php.xml

                                                                                                                                                                                                                                                                                                          LoggerException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          OptionException.php.xml

                                                                                                                                                                                                                                                                                                          OptionException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryBuilderEscapeException.php.xml

                                                                                                                                                                                                                                                                                                          QueryBuilderEscapeException.php.xml +
                                                                                                                                                                                                                                                                                                          8 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryBuilderException.php.xml

                                                                                                                                                                                                                                                                                                          QueryBuilderException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          RegistryException.php.xml

                                                                                                                                                                                                                                                                                                          RegistryException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ServerGoneException.php.xml

                                                                                                                                                                                                                                                                                                          ServerGoneException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TerminationSignalException.php.xml

                                                                                                                                                                                                                                                                                                          TerminationSignalException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionAutocommitException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionAutocommitException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionBeginException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginReadonlyException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionBeginReadonlyException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionBeginReadwriteException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionBeginReadwriteException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionCommitException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionCommitException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionIsolationException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionIsolationException.php.xml +
                                                                                                                                                                                                                                                                                                          3 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionRollbackException.php.xml

                                                                                                                                                                                                                                                                                                          TransactionRollbackException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          UpdateException.php.xml

                                                                                                                                                                                                                                                                                                          UpdateException.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/MydbExpression.php.xml b/php/phpunit/xml/MydbExpression.php.xml new file mode 100644 index 00000000000..db9d2aa9ef5 --- /dev/null +++ b/php/phpunit/xml/MydbExpression.php.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbExpression + + implements + + MydbExpressionInterface + + + { + + + + + public + + function + + __construct + ( + protected + + string + + $input + ) + + + + { + + + + } + + + + + public + + function + + __toString + ( + ) + : + + string + + + + { + + + + return + + $this + -> + input + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface.php.xml b/php/phpunit/xml/MydbInterface.php.xml new file mode 100644 index 00000000000..c1b85324d68 --- /dev/null +++ b/php/phpunit/xml/MydbInterface.php.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbInterface + + extends + + + + MydbInterface\EncoderInterface + , + + + + MydbInterface\CommandInterface + , + + + + MydbInterface\QueryInterface + , + + + + MydbInterface\DataManipulationStatementsInterface + , + + + + MydbInterface\TransactionInterface + , + + + + MydbInterface\AdministrationStatementsInterface + + + { + + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/AdministrationStatementsInterface.php.xml b/php/phpunit/xml/MydbInterface/AdministrationStatementsInterface.php.xml new file mode 100644 index 00000000000..33c873acce3 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/AdministrationStatementsInterface.php.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @see https://dev.mysql.com/doc/refman/8.0/en/sql-server-administration-statements.html + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + AdministrationStatementsInterface + + + { + + + + /** + + + * Get table primary keys + + + * @return ?array<string> + + + */ + + + + public + + function + + getPrimaryKeys + ( + string + + $table + ) + : + + ? + array + ; + + + + + /** + + + * @return array<string> + + + */ + + + + public + + function + + getEnumValues + ( + string + + $table + , + + string + + $column + ) + : + + array + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/AsyncInterface.php.xml b/php/phpunit/xml/MydbInterface/AsyncInterface.php.xml new file mode 100644 index 00000000000..57c7e1f7186 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/AsyncInterface.php.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + AsyncInterface + + + { + + + + public + + function + + async + ( + string + + $command + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/CommandInterface.php.xml b/php/phpunit/xml/MydbInterface/CommandInterface.php.xml new file mode 100644 index 00000000000..245e0b091b8 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/CommandInterface.php.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + CommandInterface + + + { + + + + /** + + + * Execute any SQL command, without returning result + + + * @param string $query sql command + + + * @return bool true success or false on failure + + + */ + + + + public + + function + + command + ( + string + + $query + ) + : + + bool + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/DataManipulationStatementsInterface.php.xml b/php/phpunit/xml/MydbInterface/DataManipulationStatementsInterface.php.xml new file mode 100644 index 00000000000..8d534b5056a --- /dev/null +++ b/php/phpunit/xml/MydbInterface/DataManipulationStatementsInterface.php.xml @@ -0,0 +1,468 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * These statements do not implicitly commit the current transaction. + + + * + + + * Data Manipulation Language (DML) statements are used for managing data within + + + * schema objects DML deals with data manipulation, and therefore includes most common + + + * SQL statements such as SELECT, INSERT, etc. DML allows adding / modifying / deleting data itself. + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/sql-data-manipulation-statements.html + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + DataManipulationStatementsInterface + + + { + + + + /** + + + * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update + + + */ + + + + public + + function + + updateWhere + ( + array + + $update + , + + array + + $whereFields + , + + string + + $table + , + + array + + $whereNotFields + + = + + [ + ] + ) + : + + ? + int + ; + + + + + public + + function + + deleteWhere + ( + array + + $whereFields + , + + string + + $table + , + + array + + $whereNotFields + + = + + [ + ] + ) + : + + ? + int + ; + + + + + public + + function + + updateWhereMany + ( + array + + $columnSetWhere + , + + array + + $where + , + + string + + $table + ) + : + + void + ; + + + + + /** + + + * @psalm-param array<array-key, array<(float|int|string|\sql\MydbExpressionInterface|null)>> $data + + + * @param array<string> $cols + + + */ + + + + public + + function + + insertMany + ( + + + + array + + $data + , + + + + array + + $cols + , + + + + string + + $table + , + + + + bool + + $ignore + + = + + false + , + + + + string + + $onDuplicateSql + + = + + '' + , + + + + ) + : + + void + ; + + + + + /** + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + */ + + + + public + + function + + insertOne + ( + array + + $data + , + + string + + $table + ) + : + + ? + string + ; + + + + + /** + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + */ + + + + public + + function + + replaceOne + ( + array + + $data + , + + string + + $table + ) + : + + ? + string + ; + + + + + public + + function + + select + ( + string + + $query + ) + : + + ? + array + ; + + + + + public + + function + + insert + ( + string + + $query + ) + : + + ? + string + ; + + + + + public + + function + + update + ( + string + + $query + ) + : + + ? + int + ; + + + + + public + + function + + delete + ( + string + + $query + ) + : + + ? + int + ; + + + + + public + + function + + replace + ( + string + + $query + ) + : + + ? + string + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/EncoderInterface.php.xml b/php/phpunit/xml/MydbInterface/EncoderInterface.php.xml new file mode 100644 index 00000000000..06e0ad0a40e --- /dev/null +++ b/php/phpunit/xml/MydbInterface/EncoderInterface.php.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @phpcs:disable SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName + + + */ + + + interface + + EncoderInterface + + + { + + + + /** + + + * Escape value for the SQL query + + + * + + + * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped + + + */ + + + + public + + function + + escape + ( + $unescaped + , + + string + + $quote + + = + + "'" + ) + : + + string + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/QueryInterface.php.xml b/php/phpunit/xml/MydbInterface/QueryInterface.php.xml new file mode 100644 index 00000000000..fcfe1c3a45f --- /dev/null +++ b/php/phpunit/xml/MydbInterface/QueryInterface.php.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + QueryInterface + + + { + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint + + + */ + + + + public + + function + + query + ( + string + + $query + ) + : + + ? + array + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/RemoteResourceInterface.php.xml b/php/phpunit/xml/MydbInterface/RemoteResourceInterface.php.xml new file mode 100644 index 00000000000..bf81bc76555 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/RemoteResourceInterface.php.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + RemoteResourceInterface + + + { + + + + /** + + + * Open remote server connection + + + */ + + + + public + + function + + open + ( + ) + : + + bool + ; + + + + + /** + + + * Cleanup remote server connection + + + * will NOT close persistent connections + + + */ + + + + public + + function + + close + ( + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/TransactionInterface.php.xml b/php/phpunit/xml/MydbInterface/TransactionInterface.php.xml new file mode 100644 index 00000000000..68f71529822 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/TransactionInterface.php.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @category interfaces + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + TransactionInterface + + + { + + + + public + + function + + beginTransaction + ( + ) + : + + void + ; + + + + + public + + function + + commitTransaction + ( + ) + : + + void + ; + + + + + public + + function + + rollbackTransaction + ( + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbInterface/index.html b/php/phpunit/xml/MydbInterface/index.html new file mode 100644 index 00000000000..5f88a168e94 --- /dev/null +++ b/php/phpunit/xml/MydbInterface/index.html @@ -0,0 +1,110 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml/MydbInterface

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AdministrationStatementsInterface.php.xml

                                                                                                                                                                                                                                                                                                          AdministrationStatementsInterface.php.xml +
                                                                                                                                                                                                                                                                                                          6 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          AsyncInterface.php.xml

                                                                                                                                                                                                                                                                                                          AsyncInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          CommandInterface.php.xml

                                                                                                                                                                                                                                                                                                          CommandInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          DataManipulationStatementsInterface.php.xml

                                                                                                                                                                                                                                                                                                          DataManipulationStatementsInterface.php.xml +
                                                                                                                                                                                                                                                                                                          19 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          EncoderInterface.php.xml

                                                                                                                                                                                                                                                                                                          EncoderInterface.php.xml +
                                                                                                                                                                                                                                                                                                          5 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          QueryInterface.php.xml

                                                                                                                                                                                                                                                                                                          QueryInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          RemoteResourceInterface.php.xml

                                                                                                                                                                                                                                                                                                          RemoteResourceInterface.php.xml +
                                                                                                                                                                                                                                                                                                          5 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          TransactionInterface.php.xml

                                                                                                                                                                                                                                                                                                          TransactionInterface.php.xml +
                                                                                                                                                                                                                                                                                                          5 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/MydbListener.php.xml b/php/phpunit/xml/MydbListener.php.xml new file mode 100644 index 00000000000..d3d38f7c257 --- /dev/null +++ b/php/phpunit/xml/MydbListener.php.xml @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + abstract + + class + + MydbListener + + implements + + MydbListenerInterface + + + { + + + + abstract + + protected + + function + + onEvent + ( + MydbEventMetadataInterface + + $event + ) + : + + ? + bool + ; + + + + + public + + function + + observe + ( + MydbEventMetadataInterface + + $event + ) + : + + bool + + + + { + + + + return + + false + + !== + + $this + -> + onEvent + ( + $event + ) + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbListener/InternalListener.php.xml b/php/phpunit/xml/MydbListener/InternalListener.php.xml new file mode 100644 index 00000000000..5db2f293bdb --- /dev/null +++ b/php/phpunit/xml/MydbListener/InternalListener.php.xml @@ -0,0 +1,762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbListener + ; + + + + use + + Psr\Log\LoggerInterface + ; + + + use + + sql\MydbEvent\InternalConnectionBegin + ; + + + use + + sql\MydbEvent\InternalConnectionEnd + ; + + + use + + sql\MydbEventMetadataInterface + ; + + + use + + sql\MydbListener + ; + + + use + + function + + in_array + ; + + + use + + function + + is_array + ; + + + use + + function + + is_null + ; + + + + class + + InternalListener + + extends + + MydbListener + + + { + + + + + public + + function + + __construct + ( + protected + + ? + LoggerInterface + + $logger + + = + + null + ) + + + + { + + + + } + + + + + protected + + function + + onEvent + ( + MydbEventMetadataInterface + + $event + ) + : + + ? + bool + + + + { + + + + if + + ( + in_array + ( + $event + -> + getEventName + ( + ) + , + + [ + InternalConnectionBegin + :: + class + , + + InternalConnectionEnd + :: + class + ] + , + + true + ) + ) + + { + + + + if + + ( + $this + -> + logger + ) + + { + + + + $this + -> + logger + -> + debug + ( + + + + 'Received event: ' + + . + + $event + -> + getEventName + ( + ) + + + + ) + ; + + + + } + + + + } + + + + + return + + is_array + ( + $event + -> + getEventMetadata + ( + ) + ) + + || + + is_null + ( + $event + -> + getEventMetadata + ( + ) + ) + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbListener/index.html b/php/phpunit/xml/MydbListener/index.html new file mode 100644 index 00000000000..3fc56a19ed5 --- /dev/null +++ b/php/phpunit/xml/MydbListener/index.html @@ -0,0 +1,54 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml/MydbListener

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          InternalListener.php.xml

                                                                                                                                                                                                                                                                                                          InternalListener.php.xml +
                                                                                                                                                                                                                                                                                                          46 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/MydbListenerInterface.php.xml b/php/phpunit/xml/MydbListenerInterface.php.xml new file mode 100644 index 00000000000..748273c6be4 --- /dev/null +++ b/php/phpunit/xml/MydbListenerInterface.php.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + interface + + MydbListenerInterface + + + { + + + + public + + function + + observe + ( + MydbEventMetadataInterface + + $event + ) + : + + bool + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbLogger.php.xml b/php/phpunit/xml/MydbLogger.php.xml new file mode 100644 index 00000000000..85331092509 --- /dev/null +++ b/php/phpunit/xml/MydbLogger.php.xml @@ -0,0 +1,2850 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + Psr\Log\LoggerInterface + ; + + + use + + Psr\Log\LogLevel + ; + + + use + + sql\MydbException\LoggerException + ; + + + use + + function + + clearstatcache + ; + + + use + + function + + count + ; + + + use + + function + + fclose + ; + + + use + + function + + feof + ; + + + use + + function + + fflush + ; + + + use + + function + + fwrite + ; + + + use + + function + + is_resource + ; + + + use + + function + + is_scalar + ; + + + use + + function + + restore_error_handler + ; + + + use + + function + + set_error_handler + ; + + + use + + function + + stream_get_meta_data + ; + + + use + + function + + strlen + ; + + + use + + function + + strtr + ; + + + use + + function + + substr + ; + + + use + + function + + var_export + ; + + + use + + const + + PHP_EOL + ; + + + use + + const + + STDERR + ; + + + use + + const + + STDOUT + ; + + + + /** + + + * Implementation of PSR-3 Logger that will output to STDERR & STDOUT + + + * + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @see https://www.php-fig.org/psr/psr-3/ + + + */ + + + class + + MydbLogger + + implements + + LoggerInterface + + + { + + + + protected + + const + + IO_WRITE_ATTEMPTS + + = + + 3 + ; + + + + + /** + + + * Opened resource, STDOUT + + + * @see https://www.php.net/manual/en/features.commandline.io-streams.php + + + * + + + * @var resource + + + */ + + + + protected + + $stdout + ; + + + + + /** + + + * Opened resource, STDERR + + + * @see https://www.php.net/manual/en/features.commandline.io-streams.php + + + * + + + * @var resource + + + */ + + + + protected + + $stderr + ; + + + + + /** + + + * End of line delimiter + + + */ + + + + protected + + string + + $stdeol + + = + + PHP_EOL + ; + + + + + /** + + + * @param resource $stdout + + + * @param resource $stderr + + + * @psalm-suppress MissingParamType + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + __construct + ( + $stdout + + = + + STDOUT + , + + $stderr + + = + + STDERR + , + + string + + $stdeol + + = + + PHP_EOL + ) + + + + { + + + + /** + + + * @psalm-suppress DocblockTypeContradiction + + + */ + + + + if + + ( + ! + is_resource + ( + $stdout + ) + + || + + ! + is_resource + ( + $stderr + ) + ) + + { + + + + throw + + new + + LoggerException + ( + ) + ; + + + + } + + + + + $this + -> + stdout + + = + + $stdout + ; + + + + $this + -> + stderr + + = + + $stderr + ; + + + + $this + -> + stdeol + + = + + $stdeol + ; + + + + } + + + + + public + + function + + __destruct + ( + ) + + + + { + + + + /** + + + * @psalm-suppress RedundantConditionGivenDocblockType + + + */ + + + + if + + ( + is_resource + ( + $this + -> + stdout + ) + ) + + { + + + + fflush + ( + $this + -> + stdout + ) + ; + + + + fclose + ( + $this + -> + stdout + ) + ; + + + + } + + + + + /** + + + * @psalm-suppress RedundantConditionGivenDocblockType + + + */ + + + + if + + ( + is_resource + ( + $this + -> + stderr + ) + ) + + { + + + + fflush + ( + $this + -> + stderr + ) + ; + + + + fclose + ( + $this + -> + stderr + ) + ; + + + + } + + + + clearstatcache + ( + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\LoggerException + + + * @param array|string $message + + + */ + + + + public + + function + + error + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + if + + ( + [ + ] + + !== + + $message + + && + + '' + + !== + + $message + ) + + { + + + + $this + -> + writeOutput + ( + $this + -> + stderr + , + + static + :: + formatter + ( + $message + ) + + . + + $this + -> + stdeol + ) + ; + + + + } + + + + + if + + ( + ! + count + ( + $context + ) + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + writeOutput + ( + $this + -> + stderr + , + + static + :: + formatter + ( + $context + ) + + . + + $this + -> + stdeol + ) + ; + + + + } + + + + + /** + + + * @param mixed $level + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter + + + */ + + + + public + + function + + log + ( + $level + , + + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + if + + ( + [ + ] + + !== + + $message + + && + + '' + + !== + + $message + ) + + { + + + + $this + -> + writeOutput + ( + $this + -> + stdout + , + + static + :: + formatter + ( + $message + ) + + . + + $this + -> + stdeol + ) + ; + + + + } + + + + + if + + ( + ! + count + ( + $context + ) + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + writeOutput + ( + $this + -> + stdout + , + + static + :: + formatter + ( + $context + ) + + . + + $this + -> + stdeol + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + warning + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + error + ( + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + emergency + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + error + ( + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + alert + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + error + ( + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + critical + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + error + ( + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + notice + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + log + ( + LogLevel + :: + NOTICE + , + + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + info + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + log + ( + LogLevel + :: + INFO + , + + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param array|string $message + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + public + + function + + debug + ( + $message + , + + array + + $context + + = + + [ + ] + ) + : + + void + + + + { + + + + $this + -> + log + ( + LogLevel + :: + DEBUG + , + + $message + , + + $context + ) + ; + + + + } + + + + + /** + + + * @param resource $stream &fs.file.pointer; + + + * @link https://php.net/manual/en/function.fwrite.php + + + * @throws \sql\MydbException\LoggerException + + + */ + + + + protected + + function + + checkStreamResource + ( + $stream + ) + : + + void + + + + { + + + + /** + + + * is_resource checks whether resource was closed with i.e. fclose() + + + * @psalm-suppress DocblockTypeContradiction + + + * @psalm-suppress RedundantConditionGivenDocblockType + + + */ + + + + if + + ( + false + + === + + is_resource + ( + $stream + ) + ) + + { + + + + throw + + new + + LoggerException + ( + 'Stream resource is not valid or already closed' + ) + ; + + + + } + + + + + $info + + = + + stream_get_meta_data + ( + $stream + ) + ; + + + + + if + + ( + $info + [ + 'timed_out' + ] + + || + + $info + [ + 'eof' + ] + + || + + feof + ( + $stream + ) + ) + + { + + + + throw + + new + + LoggerException + ( + ) + ; + + + + } + + + + + if + + ( + '' + + !== + + $info + [ + 'mode' + ] + + && + + strtr + ( + $info + [ + 'mode' + ] + , + + 'waxc+' + , + + '.....' + ) + + === + + $info + [ + 'mode' + ] + ) + + { + + + + throw + + new + + LoggerException + ( + 'Stream resource is not opened in write mode' + ) + ; + + + + } + + + + } + + + + + /** + + + * @param resource $stream &fs.file.pointer; + + + * @link https://php.net/manual/en/function.fwrite.php + + + * @throws \sql\MydbException\LoggerException + + + * @psalm-suppress MissingParamType + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh + + + */ + + + + protected + + function + + writeOutput + ( + $stream + , + + string + + $data + + = + + '' + ) + : + + void + + + + { + + + + $this + -> + checkStreamResource + ( + $stream + ) + ; + + + + + $tries + + = + + self + :: + IO_WRITE_ATTEMPTS + ; + + + + $len + + = + + strlen + ( + $data + ) + ; + + + + + /** @phan-suppress-next-line PhanNoopConstant */ + + + + for + + ( + $written + + = + + 0 + ; + + $written + + < + + $len + ; + + true + ) + + { + + + + $chunk + + = + + substr + ( + $data + , + + $written + ) + ; + + + + if + + ( + '' + + === + + $chunk + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + LoggerException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + $writeResult + + = + + $this + -> + fwrite + ( + $stream + , + + $chunk + ) + ; + + + + + if + + ( + null + + === + + $writeResult + + || + + feof + ( + $stream + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + LoggerException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + if + + ( + false + + === + + fflush + ( + $stream + ) + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + LoggerException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + $written + + += + + $writeResult + ; + + + + + if + + ( + $written + + < + + $len + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + LoggerException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + if + + ( + 0 + + === + + $writeResult + ) + + { + + + + // @codeCoverageIgnoreStart + + + + -- + $tries + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + if + + ( + $tries + + <= + + 0 + ) + + { + + + + // @codeCoverageIgnoreStart + + + + throw + + new + + LoggerException + ( + ) + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + } + + + + } + + + + + /** + + + * @param resource $stream + + + */ + + + + protected + + function + + fwrite + ( + $stream + , + + string + + $data + ) + : + + ? + int + + + + { + + + + $error + + = + + null + ; + + + + + /** + + + * @psalm-suppress InvalidArgument + + + */ + + + + set_error_handler + ( + + + + static + + function + + ( + $_ + , + + string + + $errstr + ) + + use + + ( + & + $error + ) + : + + bool + + { + + + + // @codeCoverageIgnoreStart + + + + $error + + = + + $errstr + ; + + + + + return + + true + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + ) + ; + + + + + $sent + + = + + fwrite + ( + $stream + , + + $data + ) + ; + + + + + restore_error_handler + ( + ) + ; + + + + + if + + ( + null + + !== + + $error + + || + + false + + === + + $sent + ) + + { + + + + // @codeCoverageIgnoreStart + + + + return + + null + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + return + + $sent + ; + + + + } + + + + + /** + + + * @param string|array $var + + + */ + + + + protected + + static + + function + + formatter + ( + $var + ) + : + + string + + + + { + + + + if + + ( + is_scalar + ( + $var + ) + ) + + { + + + + return + + $var + ; + + + + } + + + + + return + + var_export + ( + $var + , + + true + ) + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbMysqli.php.xml b/php/phpunit/xml/MydbMysqli.php.xml new file mode 100644 index 00000000000..2f40352defe --- /dev/null +++ b/php/phpunit/xml/MydbMysqli.php.xml @@ -0,0 +1,7976 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + mysqli + ; + + + use + + mysqli_result + ; + + + use + + sql\MydbMysqli\MydbMysqliResult + ; + + + use + + function + + array_merge + ; + + + use + + function + + array_values + ; + + + use + + function + + in_array + ; + + + use + + function + + max + ; + + + use + + function + + mysqli_report + ; + + + use + + function + + sprintf + ; + + + use + + const + + MYSQLI_INIT_COMMAND + ; + + + use + + const + + MYSQLI_OPT_CONNECT_TIMEOUT + ; + + + use + + const + + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + ; + + + use + + const + + MYSQLI_OPT_NET_READ_BUFFER_SIZE + ; + + + use + + const + + MYSQLI_OPT_READ_TIMEOUT + ; + + + use + + const + + MYSQLI_REPORT_ALL + ; + + + use + + const + + MYSQLI_REPORT_INDEX + ; + + + use + + const + + MYSQLI_REPORT_STRICT + ; + + + use + + const + + MYSQLI_STORE_RESULT_COPY_DATA + ; + + + use + + const + + MYSQLI_TRANS_COR_NO_RELEASE + ; + + + use + + const + + MYSQLI_TRANS_COR_RELEASE + ; + + + use + + const + + MYSQLI_TRANS_START_READ_ONLY + ; + + + use + + const + + MYSQLI_TRANS_START_READ_WRITE + ; + + + + /** + + + * Facade for php mysqli extension + + + * + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @see https://www.php.net/manual/en/class.mysqli + + + */ + + + class + + MydbMysqli + + implements + + MydbMysqliInterface + + + { + + + + /** + + + * Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting. + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_INIT_COMMAND + + = + + MYSQLI_INIT_COMMAND + ; + + + + + /** + + + * Connect timeout in seconds + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_OPT_CONNECT_TIMEOUT + + = + + MYSQLI_OPT_CONNECT_TIMEOUT + ; + + + + + /** + + + * The size of the internal command/network buffer. Only valid for mysqlnd. + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + + = + + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + ; + + + + + /** + + + * Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd. + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_OPT_NET_READ_BUFFER_SIZE + + = + + MYSQLI_OPT_NET_READ_BUFFER_SIZE + ; + + + + + /** + + + * Command execution result timeout in seconds. Available as of PHP 7.2.0. + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_OPT_READ_TIMEOUT + + = + + MYSQLI_OPT_READ_TIMEOUT + ; + + + + + /** + + + * Copy results from the internal mysqlnd buffer into the PHP variables fetched. + + + * By default, mysqlnd will use a reference logic to avoid copying and duplicating results + + + * held in memory. For certain result sets, for example, result sets with many small rows, + + + * the copy approach can reduce the overall memory usage because PHP variables holding + + + * results may be released earlier (available with mysqlnd only) + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_STORE_RESULT_COPY_DATA + + = + + MYSQLI_STORE_RESULT_COPY_DATA + ; + + + + + /** + + + * Appends "RELEASE" to mysqli_commit() or mysqli_rollback(). + + + * The RELEASE clause causes the server to disconnect the current client session + + + * after terminating the current transaction + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_TRANS_COR_RELEASE + + = + + MYSQLI_TRANS_COR_RELEASE + ; + + + + + /** + + + * Start the transaction as "START TRANSACTION READ ONLY" with mysqli_begin_transaction(). + + + * + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_TRANS_START_READ_ONLY + + = + + MYSQLI_TRANS_START_READ_ONLY + ; + + + + + /** + + + * Start the transaction as "START TRANSACTION READ WRITE" with mysqli_begin_transaction(). + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_TRANS_START_READ_WRITE + + = + + MYSQLI_TRANS_START_READ_WRITE + ; + + + + + /** + + + * Appends "NO RELEASE" to mysqli_commit() or mysqli_rollback(). + + + * The NO RELEASE clause asks the server to not disconnect the current client session + + + * after terminating the current transaction + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_TRANS_COR_NO_RELEASE + + = + + MYSQLI_TRANS_COR_NO_RELEASE + ; + + + + + /** + + + * Set all options on (report all), report all warnings/errors. + + + * + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_REPORT_ALL + + = + + MYSQLI_REPORT_ALL + ; + + + + + /** + + + * Report if no index or bad index was used in a query. + + + * + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_REPORT_INDEX + + = + + MYSQLI_REPORT_INDEX + ; + + + + + /** + + + * Throw a mysqli_sql_exception for errors instead of warnings. + + + * + + + * @see https://www.php.net/manual/en/mysqli.constants.php + + + */ + + + + public + + const + + MYSQLI_REPORT_STRICT + + = + + MYSQLI_REPORT_STRICT + ; + + + + + /** + + + * Safe MySQL SQL_MODE + + + * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional + + + */ + + + + protected + + const + + SQL_MODE + + = + + 'TRADITIONAL' + ; + + + + + /** + + + * Mysqli instance + + + * The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above + + + * + + + * @see http://dev.mysql.com/doc/ + + + * @see https://www.php.net/manual/en/mysqli.overview.php + + + * @see https://www.php.net/manual/en/intro.mysqli.php + + + * @see https://www.php.net/manual/en/class.mysqli + + + */ + + + + protected + + ? + mysqli + + $mysqli + + = + + null + ; + + + + + /** + + + * Flag indicating whether physical connection was established with remote server + + + * Is connected to remove server + + + */ + + + + protected + + bool + + $isConnected + + = + + false + ; + + + + + /** + + + * Flag indicating whether SQL transaction was started + + + * WARNING: best-effort, only guaranteed when library is used correctly + + + * Is transaction started + + + */ + + + + protected + + bool + + $isTransaction + + = + + false + ; + + + + + public + + function + + __construct + ( + ? + mysqli + + $resource + + = + + null + ) + + + + { + + + + if + + ( + ! + $resource + ) + + { + + + + return + ; + + + + } + + + + + $this + -> + mysqli + + = + + $resource + ; + + + + } + + + + + /** + + + * Allocate mysqli resource instance, no physical connection to remote is done + + + * + + + */ + + + + public + + function + + init + ( + ) + : + + bool + + + + { + + + + if + + ( + null + + !== + + $this + -> + mysqli + ) + + { + + + + /** + + + * Prevent zombie connections + + + */ + + + + return + + false + ; + + + + } + + + + + /** + + + * @see https://php.net/manual/en/mysqli.construct.php + + + * @see https://wiki.php.net/rfc/improve_mysqli + + + */ + + + + $init + + = + + new + + mysqli + ( + ) + ; + + + + $this + -> + mysqli + + = + + $init + ; + + + + + return + + true + ; + + + + } + + + + + /** + + + * Set various options that affect mysqli resource, before connection is established + + + * + + + * @see https://www.php.net/manual/en/mysqli.options.php + + + * @throws \sql\MydbException\EnvironmentException + + + */ + + + + public + + function + + setTransportOptions + ( + MydbOptionsInterface + + $options + , + + MydbEnvironmentInterface + + $environment + ) + : + + bool + + + + { + + + + if + + ( + null + + === + + $this + -> + mysqli + ) + + { + + + + return + + false + ; + + + + } + + + + + $ignoreUserAbort + + = + + $environment + -> + ignore_user_abort + ( + ) + ; + + + + $selectTimeout + + = + + $options + -> + getServerSideSelectTimeout + ( + ) + ; + + + + + /** + + + * Prevent entry of invalid values such as those that are out of range, or NULL specified for NOT NULL columns + + + * TRADITIONAL = strict mode + + + * + + + * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional + + + */ + + + + $mysqliInit + + = + + sprintf + ( + 'SET SESSION sql_mode = %s' + , + + self + :: + SQL_MODE + ) + ; + + + + if + + ( + $ignoreUserAbort + + < + + 1 + ) + + { + + + + $mysqliInit + + .= + + sprintf + ( + ', SESSION max_execution_time = %s' + , + + $selectTimeout + + * + + 10000 + ) + ; + + + + } + + + + + $connectTimeout + + = + + $options + -> + getConnectTimeout + ( + ) + ; + + + + $readTimeout + + = + + $options + -> + getReadTimeout + ( + ) + ; + + + + $netReadTimeout + + = + + (string) + + ( + max + ( + $selectTimeout + , + + $readTimeout + ) + + + + + $connectTimeout + ) + ; + + + + + return + + + + $environment + -> + setMysqlndNetReadTimeout + ( + $netReadTimeout + ) + + && + + + + $this + -> + mysqli + -> + options + ( + self + :: + MYSQLI_INIT_COMMAND + , + + $mysqliInit + ) + + && + + + + $this + -> + mysqli + -> + options + ( + self + :: + MYSQLI_OPT_CONNECT_TIMEOUT + , + + $connectTimeout + ) + + && + + + + $this + -> + mysqli + -> + options + ( + self + :: + MYSQLI_OPT_READ_TIMEOUT + , + + $readTimeout + ) + + && + + + + $this + -> + mysqli + -> + options + ( + self + :: + MYSQLI_OPT_NET_CMD_BUFFER_SIZE + , + + $options + -> + getNetworkBufferSize + ( + ) + ) + + && + + + + $this + -> + mysqli + -> + options + ( + self + :: + MYSQLI_OPT_NET_READ_BUFFER_SIZE + , + + $options + -> + getNetworkReadBuffer + ( + ) + ) + ; + + + + } + + + + + public + + function + + setTransactionIsolationLevel + ( + string + + $level + ) + : + + bool + + + + { + + + + /** + + + * SESSION is explicitly required, + + + * otherwise 'The statement applies only to the next single transaction performed within the session' + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html + + + */ + + + + return + + $this + -> + realQuery + ( + sprintf + ( + 'SET SESSION TRANSACTION ISOLATION LEVEL %s' + , + + $level + ) + ) + ; + + + + } + + + + + public + + function + + isTransactionOpen + ( + ) + : + + bool + + + + { + + + + /** + + + * Ignore autocommit setting here + + + */ + + + + return + + $this + -> + isTransaction + ; + + + + } + + + + + public + + function + + isConnected + ( + ) + : + + bool + + + + { + + + + return + + $this + -> + mysqli + + && + + $this + -> + isConnected + ; + + + + } + + + + + public + + function + + getMysqli + ( + ) + : + + ? + mysqli + + + + { + + + + return + + $this + -> + mysqli + ; + + + + } + + + + + /** + + + * @see https://www.php.net/manual/en/mysqli.real-query.php + + + */ + + + + public + + function + + realQuery + ( + string + + $query + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + isConnected + ( + ) + ) + + { + + + + return + + $this + -> + mysqli + -> + real_query + ( + $query + ) + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + /** + + + * React to mysqli resource changes after query/command execution + + + */ + + + + public + + function + + readServerResponse + ( + MydbEnvironmentInterface + + $environment + ) + : + + ? + MydbMysqliResult + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + isConnected + ( + ) + ) + + { + + + + $events + + = + + [ + ] + ; + + + + + $warnings + + = + + [ + ] + ; + + + + + + + $result + + = + + $this + -> + extractServerResponse + ( + $environment + , + + $events + ) + ; + + + + + $fieldsCount + + = + + $this + -> + getFieldCount + ( + ) + ; + + + + + if + + ( + $this + -> + getWarningCount + ( + ) + + > + + 0 + ) + + { + + + + $warnings + + = + + array_merge + ( + $warnings + , + + $this + -> + getWarnings + ( + ) + ) + ; + + + + } + + + + if + + ( + $events + ) + + { + + + + $warnings + + = + + array_merge + ( + $warnings + , + + array_values + ( + $events + ) + ) + ; + + + + } + + + + + /** @var array<array-key, string> $warnings */ + + + + $response + + = + + new + + MydbMysqliResult + ( + $result + , + + $warnings + , + + $fieldsCount + + ?? + + 0 + ) + ; + + + + + $error + + = + + $this + -> + getError + ( + ) + ; + + + + if + + ( + null + + !== + + $error + + && + + '' + + !== + + $error + ) + + { + + + + $response + -> + setErrorMessage + ( + $error + ) + ; + + + + } + + + + + $errno + + = + + $this + -> + getErrNo + ( + ) + ; + + + + if + + ( + $errno + + > + + 0 + ) + + { + + + + $response + -> + setErrorNumber + ( + $errno + ) + ; + + + + } + + + + + return + + $response + ; + + + + } + + + + + return + + null + ; + + + + } + + + + + /** + + + * @see https://www.php.net/manual/en/mysqli.real-escape-string.php + + + */ + + + + public + + function + + realEscapeString + ( + string + + $string + ) + : + + ? + string + + + + { + + + + if + + ( + ! + $this + -> + mysqli + + || + + ! + $this + -> + isConnected + ( + ) + ) + + { + + + + return + + null + ; + + + + } + + + + + return + + $this + -> + mysqli + -> + real_escape_string + ( + $string + ) + ; + + + + } + + + + + /** + + + * @see https://www.php.net/manual/en/mysqli.begin-transaction.php + + + */ + + + + public + + function + + beginTransactionReadwrite + ( + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + + + $this + -> + isConnected + ( + ) + + && + + + + $this + -> + mysqli + -> + begin_transaction + ( + self + :: + MYSQLI_TRANS_START_READ_WRITE + ) + ) + + { + + + + $this + -> + isTransaction + + = + + true + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + /** + + + * @see https://www.php.net/manual/en/mysqli.begin-transaction.php + + + */ + + + + public + + function + + beginTransactionReadonly + ( + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + + + $this + -> + isConnected + ( + ) + + && + + + + $this + -> + mysqli + -> + begin_transaction + ( + self + :: + MYSQLI_TRANS_START_READ_ONLY + ) + ) + + { + + + + $this + -> + isTransaction + + = + + true + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + /** + + + * @see https://www.php.net/manual/en/mysqli.rollback.php + + + */ + + + + public + + function + + rollback + ( + ) + : + + bool + + + + { + + + + /** + + + * ignore isTransaction state, do not rely on it, instead do what user requested + + + */ + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + isConnected + ( + ) + + && + + $this + -> + mysqli + -> + rollback + ( + self + :: + MYSQLI_TRANS_COR_NO_RELEASE + ) + ) + + { + + + + $this + -> + isTransaction + + = + + false + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + /** + + + * Commit transaction and release connection from server side + + + */ + + + + public + + function + + commitAndRelease + ( + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + isConnected + ( + ) + + && + + $this + -> + mysqli + -> + commit + ( + self + :: + MYSQLI_TRANS_COR_RELEASE + ) + ) + + { + + + + $this + -> + isTransaction + + = + + false + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + public + + function + + commit + ( + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + isConnected + ( + ) + + && + + $this + -> + mysqli + -> + commit + ( + self + :: + MYSQLI_TRANS_COR_NO_RELEASE + ) + ) + + { + + + + $this + -> + isTransaction + + = + + false + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + public + + function + + realConnect + ( + + + + string + + $host + , + + + + string + + $username + , + + + + string + + $password + , + + + + string + + $dbname + , + + + + ? + int + + $port + , + + + + ? + string + + $socket + , + + + + int + + $flags + , + + + + ) + : + + bool + + { + + + + if + + ( + $this + -> + mysqli + + && + + ! + $this + -> + isConnected + ( + ) + + && + + $this + -> + mysqli + -> + real_connect + ( + + + + $host + , + + + + $username + , + + + + $password + , + + + + $dbname + , + + + + (int) + + $port + , + + + + (string) + + $socket + , + + + + $flags + + + + ) + ) + + { + + + + $this + -> + isConnected + + = + + true + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + public + + function + + mysqliReport + ( + int + + $level + ) + : + + bool + + + + { + + + + return + + mysqli_report + ( + $level + ) + ; + + + + } + + + + + public + + function + + close + ( + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + ) + + { + + + + if + + ( + $this + -> + isConnected + ( + ) + ) + + { + + + + /** + + + * Ignore close() success/failure + + + */ + + + + $this + -> + mysqli + -> + close + ( + ) + ; + + + + $this + -> + isConnected + + = + + false + ; + + + + } + + + + + $this + -> + mysqli + + = + + null + ; + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + public + + function + + getConnectErrno + ( + ) + : + + ? + int + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + connect_errno + + + + : + + null + ; + + + + } + + + + + public + + function + + getConnectError + ( + ) + : + + ? + string + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + connect_error + + + + : + + null + ; + + + + } + + + + + public + + function + + isServerGone + ( + ) + : + + bool + + + + { + + + + return + + in_array + ( + $this + -> + getErrNo + ( + ) + , + + [ + 2002 + , + + 2006 + ] + , + + true + ) + ; + + + + } + + + + + public + + function + + getError + ( + ) + : + + ? + string + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + error + + + + : + + null + ; + + + + } + + + + + public + + function + + getErrNo + ( + ) + : + + ? + int + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + errno + + + + : + + null + ; + + + + } + + + + + public + + function + + getAffectedRows + ( + ) + : + + ? + int + + + + { + + + + $rows + + = + + $this + -> + mysqli + + + + ? + + (int) + + $this + -> + mysqli + -> + affected_rows + + + + : + + null + ; + + + + if + + ( + 0 + + === + + $rows + + || + + $rows + + > + + 0 + ) + + { + + + + return + + $rows + ; + + + + } + + + + + /** + + + * mysqli_affected_rows + + + * An integer greater than zero indicates the number of rows affected or retrieved. + + + * Zero indicates that no records where updated for an UPDATE statement, + + + * no rows matched the WHERE clause in the query or that no query has yet been executed. + + + * -1 indicates that the query returned an error. + + + */ + + + + return + + null + ; + + + + } + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint + + + */ + + + + public + + function + + getInsertId + ( + ) + : + + int + | + string + | + null + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + insert_id + + + + : + + null + ; + + + + } + + + + + public + + function + + autocommit + ( + bool + + $enable + ) + : + + bool + + + + { + + + + if + + ( + $this + -> + mysqli + + && + + $this + -> + mysqli + -> + autocommit + ( + $enable + ) + ) + + { + + + + if + + ( + $enable + ) + + { + + + + /** + + + * Some statement implicitly commit transaction + + + * @see https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html + + + */ + + + + $this + -> + isTransaction + + = + + false + ; + + + + } + + + + + return + + true + ; + + + + } + + + + + return + + false + ; + + + + } + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference + + + * @param array<int, string> $events + + + */ + + + + public + + function + + extractServerResponse + ( + MydbEnvironmentInterface + + $environment + , + + array + + & + $events + ) + : + + ? + mysqli_result + + + + { + + + + if + + ( + null + + === + + $this + -> + mysqli + ) + + { + + + + return + + null + ; + + + + } + + + + + /** + + + * @psalm-suppress UnusedClosureParam + + + */ + + + + $environment + -> + set_error_handler + ( + static + + function + + ( + int + + $errno + , + + string + + $error + ) + + use + + ( + & + $events + ) + + { + + + + $events + [ + $errno + ] + + = + + $error + ; + + + + + return + + true + ; + + + + } + ) + ; + + + + + $result + + = + + $this + -> + mysqli + -> + store_result + ( + self + :: + MYSQLI_STORE_RESULT_COPY_DATA + ) + ; + + + + $environment + -> + restore_error_handler + ( + ) + ; + + + + + if + + ( + false + + === + + $result + ) + + { + + + + return + + null + ; + + + + } + + + + + return + + $result + ; + + + + } + + + + + public + + function + + getWarnings + ( + ) + : + + array + + + + { + + + + if + + ( + $this + -> + mysqli + ) + + { + + + + $warnings + + = + + $this + -> + mysqli + -> + get_warnings + ( + ) + ; + + + + $array + + = + + [ + ] + ; + + + + do + + { + + + + $array + [ + ] + + = + + $warnings + -> + message + ; + + + + } + + while + + ( + $warnings + -> + next + ( + ) + ) + ; + + + + + return + + $array + ; + + + + } + + + + + return + + [ + ] + ; + + + + } + + + + + /** + + + * Returns fields count caused by query execution + + + * Requires store_result to be called first + + + * @see mysqli::store_result() + + + */ + + + + protected + + function + + getFieldCount + ( + ) + : + + ? + int + + + + { + + + + return + + $this + -> + mysqli + + ? + + $this + -> + mysqli + -> + field_count + + : + + null + ; + + + + } + + + + + /** + + + * Returns warnings caused by query execution + + + * Requires store_result to be called first + + + * @see mysqli::store_result() + + + */ + + + + protected + + function + + getWarningCount + ( + ) + : + + ? + int + + + + { + + + + return + + $this + -> + mysqli + + + + ? + + $this + -> + mysqli + -> + warning_count + + + + : + + null + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbMysqli/MydbMysqliEscapeStringInterface.php.xml b/php/phpunit/xml/MydbMysqli/MydbMysqliEscapeStringInterface.php.xml new file mode 100644 index 00000000000..0b844435d9c --- /dev/null +++ b/php/phpunit/xml/MydbMysqli/MydbMysqliEscapeStringInterface.php.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbMysqli + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbMysqliEscapeStringInterface + + + { + + + + public + + function + + realEscapeString + ( + string + + $string + ) + : + + ? + string + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbMysqli/MydbMysqliResult.php.xml b/php/phpunit/xml/MydbMysqli/MydbMysqliResult.php.xml new file mode 100644 index 00000000000..feb2fbbfc6d --- /dev/null +++ b/php/phpunit/xml/MydbMysqli/MydbMysqliResult.php.xml @@ -0,0 +1,1071 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbMysqli + ; + + + + use + + mysqli_result + ; + + + use + + const + + MYSQLI_ASSOC + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @access protected + + + */ + + + class + + MydbMysqliResult + + implements + + MydbMysqliResultInterface + + + { + + + + protected + + const + + MYSQLI_ASSOC + + = + + MYSQLI_ASSOC + ; + + + + + protected + + ? + array + + $result + + = + + null + ; + + + + + /** + + + * @psalm-var array<array-key, string> + + + * @phpcs:disable SlevomatCodingStandard.Classes.RequireConstructorPropertyPromotion.RequiredConstructorPropertyPromotion + + + */ + + + + protected + + array + + $warnings + ; + + + + + protected + + ? + string + + $errorMessage + + = + + null + ; + + + + + protected + + int + + $errorNumber + + = + + 0 + ; + + + + + /** + + + * @psalm-param array<array-key, string> $warnings + + + */ + + + + public + + function + + __construct + ( + ? + mysqli_result + + $result + , + + array + + $warnings + , + + protected + + int + + $fieldsCount + ) + + + + { + + + + if + + ( + null + + !== + + $result + ) + + { + + + + $this + -> + result + + = + + $result + -> + fetch_all + ( + self + :: + MYSQLI_ASSOC + ) + ; + + + + $result + -> + free + ( + ) + ; + + + + } + + + + + $this + -> + warnings + + = + + $warnings + ; + + + + } + + + + + public + + function + + getFieldCount + ( + ) + : + + int + + + + { + + + + return + + $this + -> + fieldsCount + ; + + + + } + + + + + /** + + + * @psalm-return array<array-key, string> + + + */ + + + + public + + function + + getWarnings + ( + ) + : + + array + + + + { + + + + return + + $this + -> + warnings + ; + + + + } + + + + + public + + function + + setErrorMessage + ( + string + + $errorMessage + ) + : + + void + + + + { + + + + $this + -> + errorMessage + + = + + $errorMessage + ; + + + + } + + + + + public + + function + + setErrorNumber + ( + int + + $errorNumber + ) + : + + void + + + + { + + + + $this + -> + errorNumber + + = + + $errorNumber + ; + + + + } + + + + + public + + function + + getError + ( + ) + : + + ? + string + + + + { + + + + if + + ( + $this + -> + result + ) + + { + + + + return + + null + ; + + + + } + + + + + if + + ( + $this + -> + errorNumber + + > + + 0 + + || + + null + + !== + + $this + -> + errorMessage + ) + + { + + + + if + + ( + null + + !== + + $this + -> + errorMessage + + && + + '' + + !== + + $this + -> + errorMessage + ) + + { + + + + return + + ( + (string) + + $this + -> + errorNumber + ) + + . + + ' ' + + . + + $this + -> + errorMessage + ; + + + + } + + + + + // @codeCoverageIgnoreStart + + + + return + + (string) + + $this + -> + errorNumber + ; + + + + // @codeCoverageIgnoreEnd + + + + } + + + + + return + + null + ; + + + + } + + + + + public + + function + + getResult + ( + ) + : + + ? + array + + + + { + + + + return + + $this + -> + result + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbMysqli/MydbMysqliResultInterface.php.xml b/php/phpunit/xml/MydbMysqli/MydbMysqliResultInterface.php.xml new file mode 100644 index 00000000000..a72fb71bdbc --- /dev/null +++ b/php/phpunit/xml/MydbMysqli/MydbMysqliResultInterface.php.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql\MydbMysqli + ; + + + + use + + mysqli_result + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * @access protected + + + */ + + + interface + + MydbMysqliResultInterface + + + { + + + + /** + + + * @psalm-param array<array-key, string> $warnings + + + */ + + + + public + + function + + __construct + ( + ? + mysqli_result + + $result + , + + array + + $warnings + , + + int + + $fieldsCount + ) + ; + + + + + public + + function + + getFieldCount + ( + ) + : + + int + ; + + + + + /** + + + * @psalm-return array<array-key, string> + + + */ + + + + public + + function + + getWarnings + ( + ) + : + + array + ; + + + + + public + + function + + setErrorMessage + ( + string + + $errorMessage + ) + : + + void + ; + + + + + public + + function + + setErrorNumber + ( + int + + $errorNumber + ) + : + + void + ; + + + + + public + + function + + getError + ( + ) + : + + ? + string + ; + + + + + public + + function + + getResult + ( + ) + : + + ? + array + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbMysqli/index.html b/php/phpunit/xml/MydbMysqli/index.html new file mode 100644 index 00000000000..6e413f883a8 --- /dev/null +++ b/php/phpunit/xml/MydbMysqli/index.html @@ -0,0 +1,70 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml/MydbMysqli

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliEscapeStringInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbMysqliEscapeStringInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliResult.php.xml

                                                                                                                                                                                                                                                                                                          MydbMysqliResult.php.xml +
                                                                                                                                                                                                                                                                                                          56 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliResultInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbMysqliResultInterface.php.xml +
                                                                                                                                                                                                                                                                                                          9 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/MydbMysqliInterface.php.xml b/php/phpunit/xml/MydbMysqliInterface.php.xml new file mode 100644 index 00000000000..6ee86b2f8d5 --- /dev/null +++ b/php/phpunit/xml/MydbMysqliInterface.php.xml @@ -0,0 +1,637 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + mysqli + ; + + + use + + mysqli_result + ; + + + use + + sql\MydbMysqli\MydbMysqliEscapeStringInterface + ; + + + use + + sql\MydbMysqli\MydbMysqliResultInterface + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbMysqliInterface + + extends + + MydbMysqliEscapeStringInterface + + + { + + + + + public + + function + + init + ( + ) + : + + bool + ; + + + + + public + + function + + setTransportOptions + ( + MydbOptionsInterface + + $options + , + + MydbEnvironmentInterface + + $environment + ) + : + + bool + ; + + + + + public + + function + + isTransactionOpen + ( + ) + : + + bool + ; + + + + + public + + function + + setTransactionIsolationLevel + ( + string + + $level + ) + : + + bool + ; + + + + + public + + function + + isConnected + ( + ) + : + + bool + ; + + + + + public + + function + + getMysqli + ( + ) + : + + ? + mysqli + ; + + + + + public + + function + + realQuery + ( + string + + $query + ) + : + + bool + ; + + + + + public + + function + + readServerResponse + ( + MydbEnvironmentInterface + + $environment + ) + : + + ? + MydbMysqliResultInterface + ; + + + + + public + + function + + beginTransactionReadwrite + ( + ) + : + + bool + ; + + + + + public + + function + + beginTransactionReadonly + ( + ) + : + + bool + ; + + + + + public + + function + + rollback + ( + ) + : + + bool + ; + + + + + public + + function + + commitAndRelease + ( + ) + : + + bool + ; + + + + + public + + function + + commit + ( + ) + : + + bool + ; + + + + + public + + function + + realConnect + ( + + + + string + + $host + , + + + + string + + $username + , + + + + string + + $password + , + + + + string + + $dbname + , + + + + ? + int + + $port + , + + + + ? + string + + $socket + , + + + + int + + $flags + , + + + + ) + : + + bool + ; + + + + + public + + function + + mysqliReport + ( + int + + $level + ) + : + + bool + ; + + + + + public + + function + + close + ( + ) + : + + bool + ; + + + + + public + + function + + getConnectErrno + ( + ) + : + + ? + int + ; + + + + + public + + function + + getConnectError + ( + ) + : + + ? + string + ; + + + + + public + + function + + isServerGone + ( + ) + : + + bool + ; + + + + + public + + function + + getError + ( + ) + : + + ? + string + ; + + + + + public + + function + + getErrNo + ( + ) + : + + ? + int + ; + + + + + public + + function + + getAffectedRows + ( + ) + : + + ? + int + ; + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint + + + */ + + + + public + + function + + getInsertId + ( + ) + : + + int + | + string + | + null + ; + + + + + public + + function + + autocommit + ( + bool + + $enable + ) + : + + bool + ; + + + + + /** + + + * @param array<int, string> $events + + + * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference + + + */ + + + + public + + function + + extractServerResponse + ( + MydbEnvironmentInterface + + $environment + , + + array + + & + $events + ) + : + + ? + mysqli_result + ; + + + + + public + + function + + getWarnings + ( + ) + : + + array + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbOptions.php.xml b/php/phpunit/xml/MydbOptions.php.xml new file mode 100644 index 00000000000..592961473c8 --- /dev/null +++ b/php/phpunit/xml/MydbOptions.php.xml @@ -0,0 +1,2846 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + sql\MydbException\OptionException + ; + + + use + + const + + E_ALL + ; + + + use + + const + + E_NOTICE + ; + + + use + + const + + E_WARNING + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbOptions + + implements + + MydbOptionsInterface + + + { + + + + protected + + const + + NET_CMD_BUFFER_SIZE_MIN + + = + + 4096 + ; + + + + + protected + + const + + NET_CMD_BUFFER_SIZE_MAX + + = + + 16384 + ; + + + + + protected + + const + + NET_READ_BUFFER_MIN + + = + + 8192 + ; + + + + + protected + + const + + NET_READ_BUFFER_MAX + + = + + 131072 + ; + + + + + /** + + + * The execution timeout ONLY APPLIES TO "SELECT" statements, seconds + + + * X > 0, enabled + + + * X = 0, not enabled. + + + * + + + * @see https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time + + + */ + + + + protected + + int + + $serverSideSelectTimeout + + = + + 89 + ; + + + + + /** + + + * MySql client connection timeout, seconds + + + */ + + + + protected + + int + + $connectTimeout + + = + + 5 + ; + + + + + protected + + int + + $errorReporting + + = + + E_ALL + + & + + ~ + E_WARNING + + & + + ~ + E_NOTICE + ; + + + + + /** + + + * The timeout in seconds for each attempt to read from the server. + + + * @see https://dev.mysql.com/doc/c-api/8.0/en/mysql-options.html + + + * @see https://github.com/php/php-src/blob/12ab4cbd00e0dae52a5db98dda6da885acb408f6/ + + + * ext/mysqli/mysqli.c#L654 + + + * @see https://github.com/php/php-src/blob/a03c1ed7aa2325d91595dcf9371297ab45543517/ + + + * ext/mysqli/tests/mysqli_constants.phpt#L24 + + + */ + + + + protected + + int + + $readTimeout + + = + + 90 + ; + + + + + /** + + + * Internal network buffer of mysqlnd.net_cmd_buffer_size bytes for every connection + + + * + + + * Scope: connection. + + + * + + + * Number of network command buffer extensions while sending commands from PHP to MySQL. + + + * + + + * mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes + + + * for every connection. + + + * If a MySQL Client Server protocol command, for example, COM_QUERY ("normal&quot query), + + + * does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command. + + + * Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one. + + + * + + + * If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes + + + * for almost every connection, you should consider to increase the default size to avoid re-allocations. + + + * + + + * The default can set either through the php.ini setting mysqlnd.net_cmd_buffer_size + + + * or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size). + + + * + + + * It is recommended to set the buffer size to no less than 4096 bytes because mysqlnd also uses + + + * it when reading certain communication packet from MySQL. + + + * + + + * As of PHP 5.3.2 mysqlnd does not allow setting buffers smaller than 4096 bytes. + + + * + + + * Default 4096 + + + * + + + * More memory usage, in exchange for better performance + + + * @see mysqlnd.net_cmd_buffer_size + + + * @see http://php.net/manual/en/mysqlnd.config.php + + + */ + + + + protected + + int + + $networkBufferSize + + = + + 6144 + ; + + + + + /** + + + * More memory for better performance + + + * + + + * Maximum read chunk size in bytes when reading the body of a MySQL command packet + + + * The MySQL client server protocol encapsulates all its commands in packets. + + + * The packets consist of a small header and a body with the actual payload + + + * + + + * If a packet body is larger than mysqlnd.net_read_buffer_size bytes, + + + * mysqlnd has to call read() multiple times + + + * + + + * This buffer controls how many bytes mysqlnd fetches from the PHP streams with one call. + + + * If a result set has less than 32kB in size, mysqlnd will call the PHP streams network + + + * functions only once, if it is larger more calls are needed + + + * + + + * Default 32768 + + + * + + + * @see mysqlnd.net_read_buffer_size + + + * @see http://php.net/manual/en/mysqlnd.config.php + + + * @see http://blog.ulf-wendel.de/2007/php-mysqlnd-saves-40-memory-finally-new-tuning-options/ + + + */ + + + + protected + + int + + $networkReadBuffer + + = + + 49152 + ; + + + + + /** + + + * Sets mysqli error reporting mode + + + * + + + * >=8.1.0 The default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. + + + * < 8.1.0 MYSQLI_REPORT_OFF. + + + * + + + * MYSQLI_REPORT_OFF Turns reporting off + + + * MYSQLI_REPORT_ERROR Report errors from mysqli function calls + + + * MYSQLI_REPORT_STRICT Throw mysqli_sql_exception for errors instead of warnings + + + * MYSQLI_REPORT_INDEX Report if no index or bad index was used in a query + + + * MYSQLI_REPORT_ALL Set all options (report all) + + + * + + + * @see https://www.php.net/manual/en/function.mysqli-report.php + + + */ + + + + protected + + int + + $clientErrorLevel + + = + + MydbMysqli + :: + MYSQLI_REPORT_ALL + + ^ + + + + MydbMysqli + :: + MYSQLI_REPORT_STRICT + + ^ + + + + MydbMysqli + :: + MYSQLI_REPORT_INDEX + ; + + + + + /** + + + * Transaction isolation is one of the foundations of database processing. + + + * Isolation is the I in the acronym ACID; the isolation level is the setting that fine-tunes + + + * the balance between performance and reliability, consistency, and reproducibility of results + + + * when multiple transactions are making changes and performing queries at the same time. + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html + + + */ + + + + protected + + ? + string + + $transactionIsolationLevel + + = + + null + ; + + + + + /** + + + * Set session time zone + + + * + + + * SET time_zone = timezone; + + + * + + + * - As the value 'SYSTEM', indicating that the server time zone is the same as the system time zone. + + + * - As a string, an offset from UTC of the form [H]H:MM, prefixed with a + or -, such as '+10:00', '-6:00' + + + * Prior to MySQL 8.0.19, this value had to be in the range '-12:59' to '+13:00' + + + * - As a named time zone, such as 'Europe/Helsinki', 'US/Eastern', 'MET', or 'UTC'. + + + * + + + * @see https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html + + + */ + + + + protected + + string + + $timeZone + + = + + 'UTC' + ; + + + + + /** + + + * The number of seconds the server waits for activity + + + * on a non-interactive TCP/IP or UNIX File connection before closing it + + + */ + + + + protected + + int + + $nonInteractiveTimeout + + = + + 7200 + ; + + + + + /** + + + * Recommended defaults: + + + * false for rw connection + + + * true for ro connection + + + * true for async connection + + + */ + + + + protected + + bool + + $autocommit + + = + + false + ; + + + + + protected + + string + + $charset + + = + + 'utf8mb4' + ; + + + + + /** + + + * Transaction block will also carry over to the next script + + + * which uses that connection if script execution ends before the transaction block does + + + * + + + * @see http://php.net/manual/en/features.persistent-connections.php + + + */ + + + + protected + + bool + + $persistent + + = + + false + ; + + + + + /** + + + * Readonly connection + + + */ + + + + protected + + bool + + $readonly + + = + + false + ; + + + + + public + + function + + getNonInteractiveTimeout + ( + ) + : + + int + + + + { + + + + return + + $this + -> + nonInteractiveTimeout + ; + + + + } + + + + + public + + function + + setNonInteractiveTimeout + ( + int + + $nonInteractiveTimeout + ) + : + + void + + + + { + + + + $this + -> + nonInteractiveTimeout + + = + + $nonInteractiveTimeout + ; + + + + } + + + + + public + + function + + getServerSideSelectTimeout + ( + ) + : + + int + + + + { + + + + return + + $this + -> + serverSideSelectTimeout + ; + + + + } + + + + + public + + function + + setServerSideSelectTimeout + ( + int + + $seconds + ) + : + + void + + + + { + + + + $this + -> + serverSideSelectTimeout + + = + + $seconds + ; + + + + } + + + + + public + + function + + getConnectTimeout + ( + ) + : + + int + + + + { + + + + return + + $this + -> + connectTimeout + ; + + + + } + + + + + public + + function + + setConnectTimeout + ( + int + + $seconds + ) + : + + void + + + + { + + + + $this + -> + connectTimeout + + = + + $seconds + ; + + + + } + + + + + public + + function + + getErrorReporting + ( + ) + : + + int + + + + { + + + + return + + $this + -> + errorReporting + ; + + + + } + + + + + public + + function + + setErrorReporting + ( + int + + $errorReporting + ) + : + + void + + + + { + + + + $this + -> + errorReporting + + = + + $errorReporting + ; + + + + } + + + + + public + + function + + getReadTimeout + ( + ) + : + + int + + + + { + + + + return + + $this + -> + readTimeout + ; + + + + } + + + + + public + + function + + setReadTimeout + ( + int + + $seconds + ) + : + + void + + + + { + + + + $this + -> + readTimeout + + = + + $seconds + ; + + + + } + + + + + public + + function + + getNetworkBufferSize + ( + ) + : + + int + + + + { + + + + return + + $this + -> + networkBufferSize + ; + + + + } + + + + + /** + + + * @param int $bytes bytes + + + * @throws \sql\MydbException\OptionException + + + */ + + + + public + + function + + setNetworkBufferSize + ( + int + + $bytes + ) + : + + void + + + + { + + + + if + + ( + $bytes + + < + + self + :: + NET_CMD_BUFFER_SIZE_MIN + + || + + $bytes + + > + + self + :: + NET_CMD_BUFFER_SIZE_MAX + ) + + { + + + + throw + + new + + OptionException + ( + ) + ; + + + + } + + + + $this + -> + networkBufferSize + + = + + $bytes + ; + + + + } + + + + + public + + function + + getNetworkReadBuffer + ( + ) + : + + int + + + + { + + + + return + + $this + -> + networkReadBuffer + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\OptionException + + + */ + + + + public + + function + + setNetworkReadBuffer + ( + int + + $bytes + ) + : + + void + + + + { + + + + if + + ( + $bytes + + < + + self + :: + NET_READ_BUFFER_MIN + + || + + $bytes + + > + + self + :: + NET_READ_BUFFER_MAX + ) + + { + + + + throw + + new + + OptionException + ( + ) + ; + + + + } + + + + $this + -> + networkReadBuffer + + = + + $bytes + ; + + + + } + + + + + public + + function + + getClientErrorLevel + ( + ) + : + + int + + + + { + + + + return + + $this + -> + clientErrorLevel + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\OptionException + + + */ + + + + public + + function + + setClientErrorLevel + ( + int + + $mysqliReport + ) + : + + void + + + + { + + + + if + + ( + $mysqliReport + + > + + 255 + + || + + $mysqliReport + + < + + 0 + ) + + { + + + + throw + + new + + OptionException + ( + ) + ; + + + + } + + + + $this + -> + clientErrorLevel + + = + + $mysqliReport + ; + + + + } + + + + + public + + function + + getTimeZone + ( + ) + : + + string + + + + { + + + + return + + $this + -> + timeZone + ; + + + + } + + + + + public + + function + + setTimeZone + ( + string + + $timeZone + ) + : + + void + + + + { + + + + $this + -> + timeZone + + = + + $timeZone + ; + + + + } + + + + + public + + function + + isAutocommit + ( + ) + : + + bool + + + + { + + + + return + + $this + -> + autocommit + ; + + + + } + + + + + public + + function + + setAutocommit + ( + bool + + $autocommit + ) + : + + void + + + + { + + + + $this + -> + autocommit + + = + + $autocommit + ; + + + + } + + + + + public + + function + + getCharset + ( + ) + : + + string + + + + { + + + + return + + $this + -> + charset + ; + + + + } + + + + + public + + function + + setCharset + ( + string + + $charset + ) + : + + void + + + + { + + + + $this + -> + charset + + = + + $charset + ; + + + + } + + + + + public + + function + + isPersistent + ( + ) + : + + bool + + + + { + + + + return + + $this + -> + persistent + ; + + + + } + + + + + public + + function + + setPersistent + ( + bool + + $persistent + ) + : + + void + + + + { + + + + $this + -> + persistent + + = + + $persistent + ; + + + + } + + + + + public + + function + + isReadonly + ( + ) + : + + bool + + + + { + + + + return + + $this + -> + readonly + ; + + + + } + + + + + public + + function + + setReadonly + ( + bool + + $readonly + ) + : + + void + + + + { + + + + $this + -> + readonly + + = + + $readonly + ; + + + + } + + + + + public + + function + + getTransactionIsolationLevel + ( + ) + : + + ? + string + + + + { + + + + $userLevel + + = + + $this + -> + transactionIsolationLevel + ; + + + + if + + ( + null + + === + + $userLevel + + && + + $this + -> + isReadonly + ( + ) + ) + + { + + + + /** + + + * Optimal defaults for readonly connection + + + */ + + + + return + + self + :: + TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED + ; + + + + } + + + + + return + + $userLevel + ; + + + + } + + + + + public + + function + + setTransactionIsolationLevel + ( + string + + $isolationLevel + ) + : + + void + + + + { + + + + $this + -> + transactionIsolationLevel + + = + + $isolationLevel + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbOptionsInterface.php.xml b/php/phpunit/xml/MydbOptionsInterface.php.xml new file mode 100644 index 00000000000..30828b19cc9 --- /dev/null +++ b/php/phpunit/xml/MydbOptionsInterface.php.xml @@ -0,0 +1,635 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbOptionsInterface + + + { + + + + /** + + + * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html + + + */ + + + + public + + const + + TRANSACTION_ISOLATION_LEVEL_DEFAULT + + = + + 'REPEATABLE READ' + ; + + + + public + + const + + TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ + + = + + 'REPEATABLE READ' + ; + + + + public + + const + + TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED + + = + + 'READ COMMITTED' + ; + + + + public + + const + + TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED + + = + + 'READ UNCOMMITTED' + ; + + + + public + + const + + TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE + + = + + 'SERIALIZABLE' + ; + + + + + public + + function + + getNonInteractiveTimeout + ( + ) + : + + int + ; + + + + + public + + function + + setNonInteractiveTimeout + ( + int + + $nonInteractiveTimeout + ) + : + + void + ; + + + + + public + + function + + getServerSideSelectTimeout + ( + ) + : + + int + ; + + + + + public + + function + + setServerSideSelectTimeout + ( + int + + $seconds + ) + : + + void + ; + + + + + public + + function + + getConnectTimeout + ( + ) + : + + int + ; + + + + + public + + function + + setConnectTimeout + ( + int + + $seconds + ) + : + + void + ; + + + + + public + + function + + getErrorReporting + ( + ) + : + + int + ; + + + + + public + + function + + setErrorReporting + ( + int + + $errorReporting + ) + : + + void + ; + + + + + public + + function + + getReadTimeout + ( + ) + : + + int + ; + + + + + public + + function + + setReadTimeout + ( + int + + $seconds + ) + : + + void + ; + + + + + public + + function + + getNetworkBufferSize + ( + ) + : + + int + ; + + + + + public + + function + + setNetworkBufferSize + ( + int + + $bytes + ) + : + + void + ; + + + + + public + + function + + getNetworkReadBuffer + ( + ) + : + + int + ; + + + + + public + + function + + setNetworkReadBuffer + ( + int + + $bytes + ) + : + + void + ; + + + + + public + + function + + getClientErrorLevel + ( + ) + : + + int + ; + + + + + public + + function + + setClientErrorLevel + ( + int + + $mysqliReport + ) + : + + void + ; + + + + + public + + function + + getTimeZone + ( + ) + : + + string + ; + + + + + public + + function + + setTimeZone + ( + string + + $timeZone + ) + : + + void + ; + + + + + public + + function + + isAutocommit + ( + ) + : + + bool + ; + + + + + public + + function + + setAutocommit + ( + bool + + $autocommit + ) + : + + void + ; + + + + + public + + function + + getCharset + ( + ) + : + + string + ; + + + + + public + + function + + getTransactionIsolationLevel + ( + ) + : + + ? + string + ; + + + + + public + + function + + setTransactionIsolationLevel + ( + string + + $isolationLevel + ) + : + + void + ; + + + + + public + + function + + setCharset + ( + string + + $charset + ) + : + + void + ; + + + + + public + + function + + isPersistent + ( + ) + : + + bool + ; + + + + + public + + function + + setPersistent + ( + bool + + $persistent + ) + : + + void + ; + + + + + public + + function + + isReadonly + ( + ) + : + + bool + ; + + + + + public + + function + + setReadonly + ( + bool + + $readonly + ) + : + + void + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbQueryBuilder.php.xml b/php/phpunit/xml/MydbQueryBuilder.php.xml new file mode 100644 index 00000000000..42531f91f0f --- /dev/null +++ b/php/phpunit/xml/MydbQueryBuilder.php.xml @@ -0,0 +1,5429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + sql\MydbException\QueryBuilderEscapeException + ; + + + use + + sql\MydbException\QueryBuilderException + ; + + + use + + sql\MydbMysqli\MydbMysqliEscapeStringInterface + ; + + + use + + function + + array_map + ; + + + use + + function + + count + ; + + + use + + function + + implode + ; + + + use + + function + + in_array + ; + + + use + + function + + is_array + ; + + + use + + function + + is_float + ; + + + use + + function + + is_int + ; + + + use + + function + + is_null + ; + + + use + + function + + is_object + ; + + + use + + function + + is_string + ; + + + use + + function + + is_subclass_of + ; + + + use + + function + + key + ; + + + use + + function + + preg_match + ; + + + use + + function + + sprintf + ; + + + use + + function + + strlen + ; + + + use + + function + + strpos + ; + + + use + + function + + strtoupper + ; + + + use + + function + + substr + ; + + + use + + function + + trim + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + class + + MydbQueryBuilder + + implements + + MydbQueryBuilderInterface + + + { + + + + + public + + function + + __construct + ( + protected + + MydbMysqliEscapeStringInterface + + $mysqli + ) + + + + { + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + public + + function + + showColumnsLike + ( + string + + $table + , + + string + + $column + ) + : + + string + + + + { + + + + if + + ( + '' + + === + + $table + + || + + '' + + === + + $column + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + return + + "SHOW COLUMNS FROM " + + . + + $this + -> + escape + ( + $table + , + + '' + ) + + . + + " LIKE " + + . + + $this + -> + escape + ( + $column + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + public + + function + + showKeys + ( + string + + $table + ) + : + + string + + + + { + + + + if + + ( + '' + + === + + $table + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + return + + 'SHOW KEYS FROM ' + + . + + $this + -> + escape + ( + $table + , + + '' + ) + ; + + + + } + + + + + /** + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + * @throws \sql\MydbException\QueryBuilderException + + + * @psalm-return string + + + */ + + + + public + + function + + insertOne + ( + array + + $data + , + + string + + $table + , + + string + + $type + ) + : + + string + + + + { + + + + if + + ( + '' + + === + + $table + + || + + 0 + + === + + count + ( + $data + ) + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $names + + = + + $values + + = + + [ + ] + ; + + + + + foreach + + ( + $data + + as + + $name + + => + + $value + ) + + { + + + + $names + [ + ] + + = + + $this + -> + escape + ( + $name + , + + "" + ) + ; + + + + $values + [ + ] + + = + + $this + -> + escape + ( + $value + ) + ; + + + + } + + + + + return + + sprintf + ( + '%s INTO %s (%s) VALUES (%s)' + , + + $type + , + + $table + , + + implode + ( + ',' + , + + $names + ) + , + + implode + ( + ',' + , + + $values + ) + ) + ; + + + + } + + + + + /** + + + * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] + + + * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] + + + * @param string $table 'mytable' + + + * @throws \sql\MydbException\QueryBuilderException + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh + + + */ + + + + public + + function + + buildUpdateWhereMany + ( + array + + $columnSetWhere + , + + array + + $where + , + + string + + $table + ) + : + + string + + + + { + + + + if + + ( + '' + + === + + $table + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $sql + + = + + 'UPDATE ' + + . + + $table + ; + + + + /** + + + * @phpcs:disable Generic.Files.LineLength.TooLong + + + * @var array<array-key, array<array-key, array<array-key, (float|int|string|\sql\MydbExpressionInterface|null)>>> $columnSetWhere + + + */ + + + + foreach + + ( + $columnSetWhere + + as + + $column + + => + + $updateValuesMap + ) + + { + + + + /** + + + * @psalm-suppress DocblockTypeContradiction + + + */ + + + + if + + ( + ! + is_string + ( + $column + ) + + || + + ! + is_array + ( + $updateValuesMap + ) + + || + + 0 + + === + + count + ( + $updateValuesMap + ) + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + /** + + + * @psalm-suppress InvalidOperand + + + */ + + + + $sql + + .= + + ' SET ' + + . + + $column + + . + + ' = CASE' + ; + + + + + foreach + + ( + $updateValuesMap + + as + + $newValueWhere + ) + + { + + + + if + + ( + ! + isset + ( + $newValueWhere + [ + 0 + ] + , + + $newValueWhere + [ + 1 + ] + ) + + || + + 2 + + !== + + count + ( + $newValueWhere + ) + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $escapedWhereValue + + = + + $this + -> + escape + ( + $newValueWhere + [ + 0 + ] + ) + ; + + + + $escapedThenValue + + = + + $this + -> + escape + ( + $newValueWhere + [ + 1 + ] + ) + ; + + + + + /** + + + * @psalm-suppress InvalidOperand + + + */ + + + + $sql + + .= + + ' WHEN (' + + . + + $column + + . + + ' = ' + + . + + $escapedWhereValue + + . + + ')' + ; + + + + $sql + + .= + + ' THEN ' + + . + + $escapedThenValue + ; + + + + } + + + + + /** + + + * @psalm-suppress InvalidOperand + + + */ + + + + $sql + + .= + + ' ELSE ' + + . + + $column + ; + + + + } + + + + + $sql + + .= + + ' END' + ; + + + + + if + + ( + count + ( + $where + ) + + > + + 0 + ) + + { + + + + $sql + + .= + + ' ' + + . + + $this + -> + buildWhere + ( + $where + ) + ; + + + + } + + + + + return + + $sql + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update + + + */ + + + + public + + function + + buildUpdateWhere + ( + + + + array + + $update + , + + + + array + + $whereFields + , + + + + string + + $table + , + + + + array + + $whereNotFields + + = + + [ + ] + , + + + + ) + : + + ? + string + + { + + + + if + + ( + '' + + === + + $table + + || + + [ + ] + + === + + $update + + || + + is_int + ( + key + ( + $update + ) + ) + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $values + + = + + [ + ] + ; + + + + $queryWhere + + = + + $this + -> + buildWhere + ( + $whereFields + , + + $whereNotFields + ) + ; + + + + + foreach + + ( + $update + + as + + $field + + => + + $value + ) + + { + + + + + /** + + + * @psalm-suppress RedundantCastGivenDocblockType + + + */ + + + + $f + + = + + (string) + + $field + + . + + ' = ' + + . + + $this + -> + escape + ( + $value + ) + ; + + + + $values + [ + ] + + = + + $f + ; + + + + } + + + + + $queryUpdate + + = + + implode + ( + ', ' + , + + $values + ) + ; + + + + + $result + + = + + 'UPDATE ' + + . + + $table + + . + + ' SET ' + + . + + $queryUpdate + ; + + + + if + + ( + '' + + !== + + $queryWhere + ) + + { + + + + $result + + .= + + ' ' + + . + + $queryWhere + ; + + + + } + + + + + return + + $result + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + public + + function + + buildDeleteWhere + ( + string + + $table + , + + array + + $fields + + = + + [ + ] + , + + array + + $negativeFields + + = + + [ + ] + ) + : + + ? + string + + + + { + + + + if + + ( + '' + + === + + $table + + || + + 0 + + === + + count + ( + $fields + ) + + || + + ! + is_string + ( + key + ( + $fields + ) + ) + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $queryWhere + + = + + $this + -> + buildWhere + ( + $fields + , + + $negativeFields + ) + ; + + + + + /** @lang text */ + + + + return + + 'DELETE FROM ' + + . + + $this + -> + escape + ( + $table + , + + '' + ) + + . + + ' ' + + . + + $queryWhere + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + * @todo will this need real db connection to escape()? add test for all possible cases + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh + + + */ + + + + public + + function + + buildWhere + ( + array + + $fields + , + + array + + $negativeFields + + = + + [ + ] + , + + array + + $likeFields + + = + + [ + ] + ) + : + + string + + + + { + + + + if + + ( + [ + ] + + === + + $fields + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + $where + + = + + [ + ] + ; + + + + + /** + + + * @psalm-var float|int|string|array|\sql\MydbExpressionInterface|null $value + + + */ + + + + foreach + + ( + $fields + + as + + $field + + => + + $value + ) + + { + + + + /** + + + * @psalm-suppress InvalidOperand + + + */ + + + + $queryPart + + = + + (string) + + $field + ; + + + + $isNegative + + = + + in_array + ( + $field + , + + $negativeFields + , + + true + ) + ; + + + + $inNull + + = + + false + ; + + + + + /** + + + * @TODO Expression support? + + + */ + + + + + if + + ( + null + + === + + $value + ) + + { + + + + $queryPart + + .= + + ' IS ' + + . + + ( + $isNegative + + ? + + 'NOT ' + + : + + '' + ) + + . + + 'NULL' + ; + + + + } + + elseif + + ( + is_array + ( + $value + ) + ) + + { + + + + $queryPart + + .= + + ( + $isNegative + + ? + + ' NOT' + + : + + '' + ) + + . + + " IN (" + ; + + + + $inVals + + = + + [ + ] + ; + + + + + /** + + + * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $val + + + */ + + + + foreach + + ( + $value + + as + + $val + ) + + { + + + + if + + ( + null + + === + + $val + ) + + { + + + + $inNull + + = + + true + ; + + + + } + + else + + { + + + + $inValEscaped + + = + + $this + -> + escape + ( + $val + ) + ; + + + + $inVals + [ + ] + + = + + $inValEscaped + ; + + + + } + + + + } + + + + + $queryPart + + .= + + implode + ( + ',' + , + + $inVals + ) + + . + + ')' + ; + + + + } + + else + + { + + + + $equality + + = + + ( + $isNegative + + ? + + '!' + + : + + '' + ) + + . + + "=" + ; + + + + + if + + ( + in_array + ( + $field + , + + $likeFields + , + + true + ) + ) + + { + + + + $equality + + = + + ( + $isNegative + + ? + + ' NOT ' + + : + + ' ' + ) + + . + + "LIKE " + ; + + + + } + + + + + $queryPart + + .= + + $equality + ; + + + + $queryPartEscaped + + = + + $this + -> + escape + ( + $value + ) + ; + + + + $queryPart + + .= + + $queryPartEscaped + ; + + + + } + + + + + if + + ( + $inNull + ) + + { + + + + $queryPart + + = + + sprintf + ( + + + + ' (%s %s %s IS %s) ' + , + + + + $queryPart + , + + + + $isNegative + + ? + + 'AND' + + : + + 'OR' + , + + + + $field + , + + + + $isNegative + + ? + + 'NOT NULL' + + : + + 'NULL' + , + + + + ) + ; + + + + } + + + + + $where + [ + ] + + = + + $queryPart + ; + + + + } + + + + + $condition + + = + + [ + ] + ; + + + + $condition + [ + ] + + = + + implode + ( + ' AND ' + , + + $where + ) + ; + + + + + return + + 'WHERE ' + + . + + trim + ( + implode + ( + ' AND ' + , + + $condition + ) + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + * @see https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html + + + * @param array<string> $cols + + + */ + + + + public + + function + + buildInsertMany + ( + array + + $data + , + + array + + $cols + , + + string + + $table + , + + bool + + $ignore + , + + string + + $onDuplicate + ) + : + + string + + + + { + + + + if + + ( + '' + + === + + $table + + || + + [ + ] + + === + + $data + + || + + [ + ] + + === + + $cols + ) + + { + + + + throw + + new + + QueryBuilderException + ( + ) + ; + + + + } + + + + + /** + + + * @phpcs:disable SlevomatCodingStandard.Functions.DisallowArrowFunction + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + $mapper + + = + + function + + ( + array + + $item + ) + : + + string + + { + + + + $escapedArgs + + = + + implode + ( + + + + ', ' + , + + + + /** + + + * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + array_map + ( + function + + ( + $input + ) + + { + + + + /** + + + * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input + + + * @phan-suppress-next-line PhanThrowTypeAbsentForCall + + + */ + + + + return + + $this + -> + escape + ( + $input + ) + ; + + + + } + , + + $item + ) + , + + + + ) + ; + + + + + return + + '(' + + . + + $escapedArgs + + . + + ')' + ; + + + + } + ; + + + + + $values + + = + + array_map + ( + $mapper + , + + $data + ) + ; + + + + + $query + + = + + "INSERT " + + . + + ( + $ignore + + ? + + 'IGNORE ' + + : + + '' + ) + + . + + "INTO " + + . + + $table + + . + + " " + ; + + + + $query + + .= + + "(" + + . + + implode + ( + ', ' + , + + $cols + ) + + . + + ") VALUES " + + . + + implode + ( + ', ' + , + + $values + ) + ; + + + + + if + + ( + '' + + !== + + $onDuplicate + + && + + false + + === + + $ignore + ) + + { + + + + $query + + .= + + ' ON DUPLICATE KEY UPDATE ' + + . + + $onDuplicate + ; + + + + } + + + + + return + + $query + ; + + + + } + + + + + /** + + + * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped + + + * @SuppressWarnings(PHPMD.NPathComplexity) + + + * @throws \sql\MydbException\QueryBuilderException + + + * @todo reduce NPathComplexity + + + * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh + + + */ + + + + public + + function + + escape + ( + $unescaped + , + + string + + $quote + + = + + "'" + ) + : + + string + + + + { + + + + if + + ( + is_float + ( + $unescaped + ) + ) + + { + + + + return + + (string) + + $unescaped + ; + + + + } + + + + + if + + ( + is_int + ( + $unescaped + ) + ) + + { + + + + return + + (string) + + $unescaped + ; + + + + } + + + + + /** + + + * Not quoting '0x...' decimal values + + + */ + + + + if + + ( + is_string + ( + $unescaped + ) + + && + + 0 + + === + + strpos + ( + $unescaped + , + + '0x' + ) + + && + + preg_match + ( + '/^[a-zA-Z0-9]+$/' + , + + $unescaped + ) + ) + + { + + + + if + + ( + 0 + + === + + strlen + ( + $unescaped + ) + + % + + 2 + ) + + { + + + + return + + '0x' + + . + + strtoupper + ( + substr + ( + $unescaped + , + + 2 + ) + ) + ; + + + + } + + + + } + + + + + if + + ( + is_object + ( + $unescaped + ) + ) + + { + + + + /** + + + * PHP <=7.4 + + + */ + + + + if + + ( + $unescaped + + instanceof + + MydbExpressionInterface + ) + + { + + + + return + + (string) + + $unescaped + ; + + + + } + + + + + /** + + + * PHP >=8.0 + + + * @psalm-suppress ArgumentTypeCoercion + + + */ + + + + if + + ( + is_subclass_of + ( + $unescaped + , + + 'Stringable' + ) + ) + + { + + + + return + + (string) + + $unescaped + ; + + + + } + + + + } + + + + + if + + ( + is_null + ( + $unescaped + ) + ) + + { + + + + return + + '' + + !== + + $quote + + ? + + $quote + + . + + '' + + . + + $quote + + : + + '' + ; + + + + } + + + + + /** + + + * @psalm-suppress RedundantCastGivenDocblockType + + + */ + + + + if + + ( + preg_match + ( + '/^(\w)*$/' + , + + (string) + + $unescaped + ) + + || + + preg_match + ( + '/^(\w\s)*$/' + , + + (string) + + $unescaped + ) + ) + + { + + + + return + + '' + + !== + + $quote + + ? + + $quote + + . + + ( + (string) + + $unescaped + ) + + . + + $quote + + : + + (string) + + $unescaped + ; + + + + } + + + + + /** + + + * @psalm-suppress RedundantCastGivenDocblockType + + + */ + + + + $result + + = + + $this + -> + mysqli + -> + realEscapeString + ( + (string) + + $unescaped + ) + ; + + + + if + + ( + null + + === + + $result + ) + + { + + + + /** + + + * @psalm-suppress RedundantCastGivenDocblockType + + + */ + + + + throw + + new + + QueryBuilderException + ( + ( + new + + QueryBuilderEscapeException + ( + (string) + + $unescaped + ) + ) + -> + getMessage + ( + ) + ) + ; + + + + } + + + + + return + + '' + + !== + + $quote + + ? + + $quote + + . + + $result + + . + + $quote + + : + + $result + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbQueryBuilderInterface.php.xml b/php/phpunit/xml/MydbQueryBuilderInterface.php.xml new file mode 100644 index 00000000000..d75677ed9b6 --- /dev/null +++ b/php/phpunit/xml/MydbQueryBuilderInterface.php.xml @@ -0,0 +1,487 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + /** + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + */ + + + interface + + MydbQueryBuilderInterface + + + { + + + + public + + const + + SQL_INSERT + + = + + 'INSERT' + ; + + + + public + + const + + SQL_REPLACE + + = + + 'REPLACE' + ; + + + + + public + + function + + showColumnsLike + ( + string + + $table + , + + string + + $column + ) + : + + string + ; + + + + + public + + function + + showKeys + ( + string + + $table + ) + : + + string + ; + + + + + /** + + + * @param array<string, (float|int|\sql\MydbExpressionInterface|string|null)> $data + + + * @psalm-return string + + + */ + + + + public + + function + + insertOne + ( + array + + $data + , + + string + + $table + , + + string + + $type + ) + : + + string + ; + + + + + /** + + + * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] + + + * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] + + + * @param string $table 'mytable' + + + */ + + + + public + + function + + buildUpdateWhereMany + ( + array + + $columnSetWhere + , + + array + + $where + , + + string + + $table + ) + : + + string + ; + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + * @param array<string, (float|int|string|\sql\MydbExpressionInterface|null)> $update + + + */ + + + + public + + function + + buildUpdateWhere + ( + + + + array + + $update + , + + + + array + + $whereFields + , + + + + string + + $table + , + + + + array + + $whereNotFields + + = + + [ + ] + , + + + + ) + : + + ? + string + ; + + + + + public + + function + + buildDeleteWhere + ( + string + + $table + , + + array + + $fields + + = + + [ + ] + , + + array + + $negativeFields + + = + + [ + ] + ) + : + + ? + string + ; + + + + + /** + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + public + + function + + buildWhere + ( + array + + $fields + , + + array + + $negativeFields + + = + + [ + ] + , + + array + + $likeFields + + = + + [ + ] + ) + : + + string + ; + + + + + /** + + + * @param array<string> $cols + + + */ + + + + public + + function + + buildInsertMany + ( + array + + $data + , + + array + + $cols + , + + string + + $table + , + + bool + + $ignore + , + + string + + $onDuplicate + ) + : + + string + ; + + + + + /** + + + * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped + + + * @throws \sql\MydbException\QueryBuilderException + + + */ + + + + public + + function + + escape + ( + $unescaped + , + + string + + $quote + + = + + "'" + ) + : + + string + ; + + + } + + + + + diff --git a/php/phpunit/xml/MydbRegistry.php.xml b/php/phpunit/xml/MydbRegistry.php.xml new file mode 100644 index 00000000000..b3d9ebfe916 --- /dev/null +++ b/php/phpunit/xml/MydbRegistry.php.xml @@ -0,0 +1,2926 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + use + + ArrayAccess + ; + + + use + + Countable + ; + + + use + + Iterator + ; + + + use + + Serializable + ; + + + use + + sql\MydbException\RegistryException + ; + + + use + + Traversable + ; + + + use + + function + + count + ; + + + use + + function + + current + ; + + + use + + function + + key + ; + + + use + + function + + next + ; + + + use + + function + + reset + ; + + + use + + function + + serialize + ; + + + + /** + + + * Singleton or registry helper to manage multiple Mydb instances + + + * + + + * @author Sergei Shilko <contact@sshilko.com> + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + * @see https://github.com/sshilko/php-sql-mydb + + + * + + + * @psalm-suppress MissingTemplateParam + + + */ + + + class + + MydbRegistry + + implements + + ArrayAccess + , + + Countable + , + + Traversable + , + + Iterator + , + + Serializable + + + { + + + + + /** + + + * @var array<string, \sql\MydbInterface> + + + */ + + + + protected + + array + + $instance + + = + + [ + ] + ; + + + + + /** + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + serialize + ( + ) + : + + ? + string + + + + { + + + + throw + + new + + RegistryException + ( + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\RegistryException + + + * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter + + + */ + + + + public + + function + + unserialize + ( + $data + ) + : + + void + + + + { + + + + throw + + new + + RegistryException + ( + serialize + ( + $data + ) + ) + ; + + + + } + + + + + /** + + + * Return the current element + + + */ + + + + public + + function + + current + ( + ) + : + + ? + MydbInterface + + + + { + + + + $result + + = + + current + ( + $this + -> + instance + ) + ; + + + + if + + ( + false + + === + + $result + ) + + { + + + + return + + null + ; + + + + } + + + + + return + + $result + ; + + + + } + + + + + /** + + + * Return the key of the current element + + + */ + + + + public + + function + + key + ( + ) + : + + ? + string + + + + { + + + + $result + + = + + key + ( + $this + -> + instance + ) + ; + + + + if + + ( + null + + === + + $result + ) + + { + + + + return + + null + ; + + + + } + + + + + return + + $result + ; + + + + } + + + + + /** + + + * Move forward to next element + + + */ + + + + public + + function + + next + ( + ) + : + + void + + + + { + + + + next + ( + $this + -> + instance + ) + ; + + + + } + + + + + /** + + + * Rewind the Iterator to the first element + + + */ + + + + public + + function + + rewind + ( + ) + : + + void + + + + { + + + + reset + ( + $this + -> + instance + ) + ; + + + + } + + + + + /** + + + * Checks if current position is valid + + + * @return bool The return value will be boolean and then evaluated. + + + * Returns true on success or false on failure. + + + */ + + + + public + + function + + valid + ( + ) + : + + bool + + + + { + + + + return + + false + + !== + + current + ( + $this + -> + instance + ) + ; + + + + } + + + + + public + + function + + count + ( + ) + : + + int + + + + { + + + + return + + count + ( + $this + -> + instance + ) + ; + + + + } + + + + + /** + + + * Whether an offset exists + + + * + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint + + + * @param string $offset + + + * @return bool true on success or false on failure. + + + */ + + + + public + + function + + offsetExists + ( + $offset + ) + : + + bool + + + + { + + + + return + + isset + ( + $this + -> + instance + [ + $offset + ] + ) + ; + + + + } + + + + + /** + + + * Offset to retrieve + + + * + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint + + + * @param string $offset + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + offsetGet + ( + $offset + ) + : + + MydbInterface + + + + { + + + + if + + ( + $this + -> + offsetExists + ( + $offset + ) + ) + + { + + + + return + + $this + -> + instance + [ + $offset + ] + ; + + + + } + + + + + throw + + new + + RegistryException + ( + ) + ; + + + + } + + + + + /** + + + * Offset to set + + + * + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint + + + * @param string $offset + + + * @param \sql\MydbInterface $value + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + offsetSet + ( + $offset + , + + $value + ) + : + + void + + + + { + + + + if + + ( + $value + + instanceof + + MydbInterface + + && + + ! + $this + -> + offsetExists + ( + $offset + ) + ) + + { + + + + $this + -> + instance + [ + $offset + ] + + = + + $value + ; + + + + + return + ; + + + + } + + + + + throw + + new + + RegistryException + ( + ) + ; + + + + } + + + + + /** + + + * Offset to unset + + + * + + + * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint + + + * @param string $offset + + + */ + + + + public + + function + + offsetUnset + ( + $offset + ) + : + + void + + + + { + + + + if + + ( + ! + $this + -> + offsetExists + ( + $offset + ) + ) + + { + + + + return + ; + + + + } + + + + + unset + ( + $this + -> + instance + [ + $offset + ] + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + __clone + ( + ) + + + + { + + + + throw + + new + + RegistryException + ( + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + __serialize + ( + ) + : + + array + + + + { + + + + throw + + new + + RegistryException + ( + ) + ; + + + + } + + + + + /** + + + * @throws \sql\MydbException\RegistryException + + + */ + + + + public + + function + + __unserialize + ( + array + + $data + ) + : + + void + + + + { + + + + throw + + new + + RegistryException + ( + serialize + ( + $data + ) + ) + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbRepository.php.xml b/php/phpunit/xml/MydbRepository.php.xml new file mode 100644 index 00000000000..ffcf1b7effa --- /dev/null +++ b/php/phpunit/xml/MydbRepository.php.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + abstract + + class + + MydbRepository + + implements + + MydbRepositoryInterface + + + { + + + + + abstract + + public + + function + + getDatabaseIdentifier + ( + ) + : + + string + ; + + + + + public + + function + + __construct + ( + private + + MydbRegistry + + $registry + ) + + + + { + + + + } + + + + + public + + function + + getDatabase + ( + ) + : + + MydbInterface + + + + { + + + + return + + $this + -> + registry + [ + $this + -> + getDatabaseIdentifier + ( + ) + ] + ; + + + + } + + + } + + + + + diff --git a/php/phpunit/xml/MydbRepositoryInterface.php.xml b/php/phpunit/xml/MydbRepositoryInterface.php.xml new file mode 100644 index 00000000000..5290fb88866 --- /dev/null +++ b/php/phpunit/xml/MydbRepositoryInterface.php.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + <?php + + + /** + + + * This file is part of the sshilko/php-sql-mydb package. + + + * + + + * (c) Sergei Shilko <contact@sshilko.com> + + + * + + + * MIT License + + + * + + + * For the full copyright and license information, please view the LICENSE + + + * file that was distributed with this source code. + + + * @license https://opensource.org/licenses/mit-license.php MIT + + + */ + + + + declare + ( + strict_types + + = + + 1 + ) + ; + + + + namespace + + sql + ; + + + + interface + + MydbRepositoryInterface + + + { + + + + public + + function + + getDatabase + ( + ) + : + + MydbInterface + ; + + + } + + + + + diff --git a/php/phpunit/xml/index.html b/php/phpunit/xml/index.html new file mode 100644 index 00000000000..02414b3f4b4 --- /dev/null +++ b/php/phpunit/xml/index.html @@ -0,0 +1,278 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/phpunit/xml

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEvent

                                                                                                                                                                                                                                                                                                          MydbEvent +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbException

                                                                                                                                                                                                                                                                                                          MydbException +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbInterface

                                                                                                                                                                                                                                                                                                          MydbInterface +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListener

                                                                                                                                                                                                                                                                                                          MydbListener +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqli

                                                                                                                                                                                                                                                                                                          MydbMysqli +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Mydb.php.xml

                                                                                                                                                                                                                                                                                                          Mydb.php.xml +
                                                                                                                                                                                                                                                                                                          581 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbCredentials.php.xml

                                                                                                                                                                                                                                                                                                          MydbCredentials.php.xml +
                                                                                                                                                                                                                                                                                                          107 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbCredentialsInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbCredentialsInterface.php.xml +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEnvironment.php.xml

                                                                                                                                                                                                                                                                                                          MydbEnvironment.php.xml +
                                                                                                                                                                                                                                                                                                          171 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEnvironmentInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbEnvironmentInterface.php.xml +
                                                                                                                                                                                                                                                                                                          14 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEvent.php.xml

                                                                                                                                                                                                                                                                                                          MydbEvent.php.xml +
                                                                                                                                                                                                                                                                                                          32 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEventInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbEventInterface.php.xml +
                                                                                                                                                                                                                                                                                                          3 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbEventMetadataInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbEventMetadataInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbException.php.xml

                                                                                                                                                                                                                                                                                                          MydbException.php.xml +
                                                                                                                                                                                                                                                                                                          3 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbExpression.php.xml

                                                                                                                                                                                                                                                                                                          MydbExpression.php.xml +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbInterface.php.xml +
                                                                                                                                                                                                                                                                                                          4 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListener.php.xml

                                                                                                                                                                                                                                                                                                          MydbListener.php.xml +
                                                                                                                                                                                                                                                                                                          11 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbListenerInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbListenerInterface.php.xml +
                                                                                                                                                                                                                                                                                                          3 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbLogger.php.xml

                                                                                                                                                                                                                                                                                                          MydbLogger.php.xml +
                                                                                                                                                                                                                                                                                                          134 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqli.php.xml

                                                                                                                                                                                                                                                                                                          MydbMysqli.php.xml +
                                                                                                                                                                                                                                                                                                          456 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbMysqliInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbMysqliInterface.php.xml +
                                                                                                                                                                                                                                                                                                          25 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbOptions.php.xml

                                                                                                                                                                                                                                                                                                          MydbOptions.php.xml +
                                                                                                                                                                                                                                                                                                          144 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbOptionsInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbOptionsInterface.php.xml +
                                                                                                                                                                                                                                                                                                          26 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbQueryBuilder.php.xml

                                                                                                                                                                                                                                                                                                          MydbQueryBuilder.php.xml +
                                                                                                                                                                                                                                                                                                          315 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbQueryBuilderInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbQueryBuilderInterface.php.xml +
                                                                                                                                                                                                                                                                                                          19 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRegistry.php.xml

                                                                                                                                                                                                                                                                                                          MydbRegistry.php.xml +
                                                                                                                                                                                                                                                                                                          179 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRepository.php.xml

                                                                                                                                                                                                                                                                                                          MydbRepository.php.xml +
                                                                                                                                                                                                                                                                                                          7 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          MydbRepositoryInterface.php.xml

                                                                                                                                                                                                                                                                                                          MydbRepositoryInterface.php.xml +
                                                                                                                                                                                                                                                                                                          3 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          index.xml

                                                                                                                                                                                                                                                                                                          index.xml +
                                                                                                                                                                                                                                                                                                          60 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/phpunit/xml/index.xml b/php/phpunit/xml/index.xml new file mode 100644 index 00000000000..a2f31df33a0 --- /dev/null +++ b/php/phpunit/xml/index.xml @@ -0,0 +1,856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/psalm/index.html b/php/psalm/index.html new file mode 100644 index 00000000000..30700a52ea5 --- /dev/null +++ b/php/psalm/index.html @@ -0,0 +1,62 @@ + + + + + Index of / + + + + +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          Index of /php/psalm

                                                                                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                                                          + Filename + + Size + + Last Modified +
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          ..

                                                                                                                                                                                                                                                                                                          .. +
                                                                                                                                                                                                                                                                                                          -10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          psalm.stdout.txt

                                                                                                                                                                                                                                                                                                          psalm.stdout.txt +
                                                                                                                                                                                                                                                                                                          1 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                                                          psalm.txt

                                                                                                                                                                                                                                                                                                          psalm.txt +
                                                                                                                                                                                                                                                                                                          0 kB10-Aug-2025 23:25
                                                                                                                                                                                                                                                                                                          + + generated by apindex + + +
                                                                                                                                                                                                                                                                                                          + + diff --git a/php/psalm/psalm.stdout.txt b/php/psalm/psalm.stdout.txt new file mode 100644 index 00000000000..4d3d9bd14b9 --- /dev/null +++ b/php/psalm/psalm.stdout.txt @@ -0,0 +1,30 @@ +------------------------------ +  + No errors found!  +  +------------------------------ + +Checks took 4.89 seconds and used 278.112MB of memory +Psalm was able to infer types for 99.9264% of the codebase +----------------- +99.771% ../src/sql/Mydb.php (1 mixed) +100.000% ../src/sql/MydbCredentials.php (0 mixed) +100.000% ../src/sql/MydbEnvironment.php (0 mixed) +100.000% ../src/sql/MydbEvent.php (0 mixed) +100.000% ../src/sql/MydbEvent/InternalConnectionBegin.php (0 mixed) +100.000% ../src/sql/MydbEvent/InternalConnectionEnd.php (0 mixed) +100.000% ../src/sql/MydbEvent/InternalEvent.php (0 mixed) +100.000% ../src/sql/MydbEvent/InternalQueryBegin.php (0 mixed) +100.000% ../src/sql/MydbEvent/InternalQueryEnd.php (0 mixed) +100.000% ../src/sql/MydbException/QueryBuilderEscapeException.php (0 mixed) +100.000% ../src/sql/MydbExpression.php (0 mixed) +100.000% ../src/sql/MydbListener.php (0 mixed) +100.000% ../src/sql/MydbListener/InternalListener.php (0 mixed) +100.000% ../src/sql/MydbLogger.php (0 mixed) +100.000% ../src/sql/MydbMysqli.php (0 mixed) +100.000% ../src/sql/MydbMysqli/MydbMysqliResult.php (0 mixed) +100.000% ../src/sql/MydbOptions.php (0 mixed) +100.000% ../src/sql/MydbQueryBuilder.php (0 mixed) +100.000% ../src/sql/MydbRegistry.php (0 mixed) +100.000% ../src/sql/MydbRepository.php (0 mixed) + diff --git a/php/psalm/psalm.txt b/php/psalm/psalm.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sql/Mydb.php b/src/sql/Mydb.php deleted file mode 100644 index 7780eeaeef9..00000000000 --- a/src/sql/Mydb.php +++ /dev/null @@ -1,681 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use Psr\Log\LoggerInterface; -use sql\MydbException\ConnectDefaultsException; -use sql\MydbException\ConnectException; -use sql\MydbException\DeleteException; -use sql\MydbException\DisconnectException; -use sql\MydbException\InternalException; -use sql\MydbException\ServerGoneException; -use sql\MydbException\TerminationSignalException; -use sql\MydbException\TransactionAutocommitException; -use sql\MydbException\TransactionBeginReadonlyException; -use sql\MydbException\TransactionBeginReadwriteException; -use sql\MydbException\TransactionCommitException; -use sql\MydbException\TransactionIsolationException; -use sql\MydbException\TransactionRollbackException; -use sql\MydbException\UpdateException; -use sql\MydbInterface\RemoteResourceInterface; -use sql\MydbListener\InternalListener; -use sql\MydbMysqli\MydbMysqliResultInterface; -use Throwable; -use function array_map; -use function count; -use function explode; -use function implode; -use function preg_replace; -use function sprintf; -use function stripos; -use function strpos; -use function substr; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class Mydb implements MydbInterface, RemoteResourceInterface -{ - - protected MydbMysqliInterface $mysqli; - - protected MydbOptionsInterface $options; - - protected MydbEnvironmentInterface $environment; - - protected MydbQueryBuilderInterface $queryBuilder; - - protected MydbListenerInterface $eventListener; - - protected bool $terminating = false; - - public function __construct( - protected MydbCredentialsInterface $credentials, - protected LoggerInterface $logger, - ?MydbOptionsInterface $options = null, - ?MydbMysqliInterface $mysqli = null, - ?MydbEnvironmentInterface $environment = null, - ?MydbQueryBuilderInterface $queryBuilder = null, - ?MydbListenerInterface $eventListener = null, - ) { - $this->options = $options ?? new MydbOptions(); - $this->mysqli = $mysqli ?? new MydbMysqli(); - $this->environment = $environment ?? new MydbEnvironment(); - $this->queryBuilder = $queryBuilder ?? new MydbQueryBuilder($this->mysqli); - $this->eventListener = $eventListener ?? new InternalListener($logger); - } - - /** - * A destructor may be called as soon as there are no references to an object. - * - * @see http://php.net/manual/en/mysqli.close.php - * @see http://php.net/manual/en/mysqli.ping.php (MysqlND not supports reconnect) - * @throws \sql\MydbException - */ - public function __destruct() - { - $this->terminating = true; - $this->close(); - } - - /** - * Open connection to remote server - * @param int $retry retry failed connection attempts - * @throws \sql\MydbException - */ - public function open(int $retry = 0): bool - { - return $this->connect($retry); - } - - /** - * Execute raw SQL query and return results - * - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive - * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint - * - * @psalm-return array>|null - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - */ - public function query(string $query): ?array - { - - if (!$this->connect()) { - throw new ConnectException(); - } - - $result = $this->sendClientRequest($query); - /** - * We should always read server response, no matter whether sendClientRequest result - */ - $packet = $this->readServerResponse($query); - - if (false === $result || null === $packet) { - return null; - } - - if ($packet->getFieldCount() > 0) { - $payload = $packet->getResult(); - if (null === $payload) { - $this->onError( - new InternalException($packet->getError() ?? 'Reading of the result set failed'), - $query - ); - } - - /** - * @var array> $payload - */ - return $payload; - } - - return null; - } - - /** - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive - * @throws \sql\MydbException - */ - public function command(string $query): bool - { - if (!$this->connect()) { - throw new ConnectException(); - } - - - $result = $this->sendClientRequest($query); - - if (false === $result) { - return false; - } - - $packet = $this->readServerResponse($query); - - return null !== $packet; - } - - /** - * @return array - * @throws \sql\MydbException - * @psalm-return list - */ - public function getEnumValues(string $table, string $column): array - { - $query = $this->queryBuilder->showColumnsLike($table, $column); - - $resultArray = $this->query($query); - $result = isset($resultArray[0]['Type']) - ? (string) $resultArray[0]['Type'] - : null; - - $match = false; - $types = ['enum', 'set']; - foreach ($types as $type) { - if (0 === stripos((string)$result, $type . '(')) { - $match = $type; - - break; - } - } - - if (false === $match) { - $this->onError(new MydbException("Column not of type '" . implode(',', $types) . "'")); - } - - $input = substr((string) $result, (int) strpos((string) $result, '(') + 1, -1); - - // @codeCoverageIgnoreStart - /** - * @psalm-suppress DocblockTypeContradiction - */ - if ('' === $input) { - throw new MydbException(); - } - // @codeCoverageIgnoreEnd - - $values = explode(',', preg_replace("/'/", '', $input)); - - return array_map('strval', $values); - } - - /** - * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - * @SuppressWarnings(PHPMD.NPathComplexity) - * @todo reduce NPathComplexity - */ - public function escape($unescaped, string $quote = "'"): string - { - if (!$this->connect()) { - throw new ConnectException(); - } - - return $this->queryBuilder->escape($unescaped, $quote); - } - - /** - * @throws \sql\MydbException - * @throws \sql\MydbException\ConnectException - * @return ?array - */ - public function getPrimaryKeys(string $table): ?array - { - $result = $this->query($this->queryBuilder->showKeys($table)); - - if (null === $result) { - return null; - } - - $keys = []; - foreach ($result as $row) { - if (isset($row['Key_name']) && 'PRIMARY' === $row['Key_name'] && isset($row['Column_name'])) { - $keys[] = (string) $row['Column_name']; - } - } - - return [] !== $keys ? $keys : null; - } - - /** - * @throws \sql\MydbException - */ - public function beginTransaction(): void - { - if (!$this->connect()) { - throw new ConnectException(); - } - - if ($this->options->isReadonly()) { - if ($this->mysqli->beginTransactionReadonly()) { - return; - } - $this->onError(new TransactionBeginReadonlyException()); - } else { - if ($this->mysqli->beginTransactionReadwrite()) { - return; - } - $this->onError(new TransactionBeginReadwriteException()); - } - } - - /** - * @throws \sql\MydbException - */ - public function rollbackTransaction(): void - { - if (!$this->mysqli->isConnected()) { - throw new ConnectException(); - } - - if ($this->mysqli->rollback()) { - return; - } - - $this->onError(new TransactionRollbackException()); - } - - /** - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - */ - public function commitTransaction(): void - { - if (!$this->mysqli->isConnected()) { - throw new ConnectException(); - } - - if ($this->mysqli->commit()) { - return; - } - - $this->onError(new TransactionCommitException()); - } - - /** - * @throws \sql\MydbException - */ - public function close(): void - { - if (false === $this->mysqli->isConnected()) { - return; - } - - try { - /** - * No autocommit - * No transaction - * - * Default: commit all commands if transaction was NOT open - */ - if (false === $this->options->isAutocommit() && false === $this->mysqli->isTransactionOpen()) { - /** - * RELEASE clause causes the server to disconnect the current client session - * after terminating the current transaction. - */ - $commit = $this->options->isPersistent() - ? $this->mysqli->commit() - : $this->mysqli->commitAndRelease(); - - if (false === $commit) { - throw new TransactionCommitException(); - } - } - - /** - * Explicitly closing open connections and freeing result sets is optional but recommended - * Server already closed connection from server-side - */ - if (false === $this->mysqli->close()) { - throw new DisconnectException(); - } - } catch (MydbException $e) { - $this->onError($e); - } catch (Throwable $e) { - $this->onError(new InternalException($e->getMessage())); - } - - if ($this->terminating) { - return; - } - - $this->environment->gc_collect_cycles(); - } - - /** - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - */ - public function replace(string $query): ?string - { - return $this->insert($query); - } - - /** - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - */ - public function insert(string $query): ?string - { - if ($this->command($query)) { - return (string) $this->mysqli->getInsertId(); - } - - return null; - } - - /** - * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint - * @throws \sql\MydbException - * @throws \sql\MydbException\ConnectException - */ - public function select(string $query): ?array - { - return $this->query($query); - } - - /** - * @throws \sql\MydbException - */ - public function delete(string $query): ?int - { - if ($this->command($query)) { - $rows = $this->mysqli->getAffectedRows(); - if (null === $rows) { - $this->onError(new DeleteException(), $query); - } - - return $rows; - } - - return null; - } - - /** - * @throws \sql\MydbException - */ - public function update(string $query): ?int - { - if ($this->command($query)) { - $rows = $this->mysqli->getAffectedRows(); - if (null === $rows) { - $this->onError(new UpdateException(), $query); - } - - return $rows; - } - - return null; - } - - /** - * @throws \sql\MydbException - */ - public function deleteWhere(array $whereFields, string $table, array $whereNotFields = []): ?int - { - $query = $this->queryBuilder->buildDeleteWhere($table, $whereFields, $whereNotFields); - if (null === $query) { - return null; - } - - return $this->delete($query); - } - - /** - * @param array $update - * @throws \sql\MydbException - */ - public function updateWhere(array $update, array $whereFields, string $table, array $whereNotFields = []): ?int - { - $query = $this->queryBuilder->buildUpdateWhere($update, $whereFields, $table, $whereNotFields); - - if ('' !== $query && null !== $query) { - return $this->update($query); - } - - return null; - } - - /** - * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] - * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] - * @param string $table 'mytable' - * @throws \sql\MydbException - */ - public function updateWhereMany(array $columnSetWhere, array $where, string $table): void - { - $sql = $this->queryBuilder->buildUpdateWhereMany($columnSetWhere, $where, $table); - $this->update($sql); - } - - /** - * @throws \sql\MydbException\ConnectException - * @throws \sql\MydbException - * @psalm-param array> $data - * @param array $cols - */ - public function insertMany( - array $data, - array $cols, - string $table, - bool $ignore = false, - string $onDuplicateSql = '', - ): void { - $sql = $this->queryBuilder->buildInsertMany($data, $cols, $table, $ignore, $onDuplicateSql); - $this->insert($sql); - } - - /** - * @throws \sql\MydbException - * @param array $data - */ - public function replaceOne(array $data, string $table): ?string - { - $query = $this->queryBuilder->insertOne($data, $table, MydbQueryBuilderInterface::SQL_REPLACE); - - return $this->replace($query); - } - - /** - * @throws \sql\MydbException - * @param array $data - */ - public function insertOne(array $data, string $table): ?string - { - $query = $this->queryBuilder->insertOne($data, $table, MydbQueryBuilderInterface::SQL_INSERT); - - return $this->insert($query); - } - - /** - * @throws \sql\MydbException\EnvironmentException - * @throws \sql\MydbException\TerminationSignalException - * @throws \sql\MydbException\EventException - */ - protected function sendClientRequest(string $query): bool - { - $this->environment->startSignalsTrap(); - $this->environment->set_error_handler(); - - (new MydbEvent\InternalQueryBegin($query))->setListeners([$this->eventListener])->notify(); - $result = $this->mysqli->realQuery($query); - (new MydbEvent\InternalQueryEnd($query, $result))->setListeners([$this->eventListener])->notify(); - - $this->environment->restore_error_handler(); - $hasPendingSignals = $this->environment->endSignalsTrap(); - if (null !== $hasPendingSignals && count($hasPendingSignals) > 0) { - throw new TerminationSignalException(); - } - - return $result; - } - - /** - * @throws \sql\MydbException - */ - protected function readServerResponse(string $query): ?MydbMysqliResultInterface - { - $packet = $this->mysqli->readServerResponse($this->environment); - if (null === $packet) { - return null; - } - - $warnings = $packet->getWarnings(); - if (count($warnings) > 0) { - foreach ($warnings as $warningMessage) { - $this->onWarning($warningMessage, $query); - } - } - - $errorMessage = $packet->getError(); - if (null !== $errorMessage) { - if ($this->mysqli->isServerGone()) { - /** - * server closed connection, do close() and ignore result of operation - */ - $this->mysqli->close(); - $this->onError(new ServerGoneException($errorMessage), $query); - } else { - $this->onError(new InternalException($errorMessage), $query); - } - } - - return $packet; - } - - protected function onWarning(string $warningMessage, ?string $sql = null): void - { - $this->logger->warning($warningMessage, ['sql' => $sql]); - } - - /** - * @throws \sql\MydbException - */ - protected function onError(MydbException $exception, ?string $sql = null): void - { - $this->logger->error($exception->getMessage(), ['sql' => $sql]); - - throw $exception; - } - - /** - * @throws \sql\MydbException\DisconnectException - * @throws \sql\MydbException\TransactionAutocommitException - * @throws \sql\MydbException\EnvironmentException - * @throws \sql\MydbException\EventException - * @throws \sql\MydbException - * @SuppressWarnings(PHPMD.NPathComplexity) - * @todo reduce NPathComplexity - */ - protected function connect(int $retry = 0): bool - { - if ($this->mysqli->isConnected()) { - return true; - } - - $connected = false; - $init0 = $this->mysqli->init(); - $init1 = $init0 && $this->mysqli->setTransportOptions($this->options, $this->environment); - - if ($init0 && $init1) { - $reportingLevel = $this->environment->error_reporting($this->options->getErrorReporting()); - - $host = ($this->options->isPersistent() ? 'p:' : '') . $this->credentials->getHost(); - $dbname = $this->credentials->getDbname(); - - (new MydbEvent\InternalConnectionBegin($host, $dbname)) - ->setListeners([$this->eventListener])->notify(); - $connected = $this->mysqli->realConnect( - $host, - $this->credentials->getUsername(), - $this->credentials->getPasswd(), - $dbname, - $this->credentials->getPort(), - $this->credentials->getSocket(), - $this->credentials->getFlags() - ); - (new MydbEvent\InternalConnectionEnd($host, $dbname, $connected)) - ->setListeners([$this->eventListener])->notify(); - - $this->environment->error_reporting($reportingLevel); - } - - if (false === $connected) { - $errorNumber = (string) ($this->mysqli->getConnectErrno() ?: $this->mysqli->getErrNo()); - $errorText = (string) ($this->mysqli->getConnectError() ?: $this->mysqli->getError()); - - if (false === $this->mysqli->close()) { - throw new DisconnectException(); - } - - $this->onWarning($errorNumber . ' ' . $errorText); - - if ($retry > 0) { - --$retry; - - return $this->connect($retry); - } - - return false; - } - - $this->mysqli->mysqliReport($this->options->getClientErrorLevel()); - - if (false === $this->mysqli->autocommit($this->options->isAutocommit())) { - throw new TransactionAutocommitException(); - } - - /** - * Here's a summary of what variables are set by each statement: SET NAMES vs SET CHARSET - * - * Variable SET NAMES SET CHARSET - * character_set_client argument argument - * character_set_results argument argument - * character_set_connection argument default for default db - * collation_connection argument* default for default db - * - * SET CHARSET doesn't set the connection charset to the charset you specify in the argument, - * instead it sets it to the charset for your current default database - */ - $defaults = $this->mysqli->realQuery( - sprintf( - "SET time_zone = '%s', wait_timeout = %d, names '%s'", - $this->options->getTimeZone(), - $this->options->getNonInteractiveTimeout(), - $this->options->getCharset() - ) - ); - - if (false === $defaults) { - throw new ConnectDefaultsException(); - } - - $isoLevel = $this->options->getTransactionIsolationLevel(); - if (null !== $isoLevel && false === $this->mysqli->setTransactionIsolationLevel($isoLevel)) { - throw new TransactionIsolationException(); - } - - if ($this->options->isReadonly() && false === $this->mysqli->beginTransactionReadonly()) { - throw new TransactionAutocommitException(); - } - - return true; - } -} diff --git a/src/sql/MydbCredentials.php b/src/sql/MydbCredentials.php deleted file mode 100644 index a783409014f..00000000000 --- a/src/sql/MydbCredentials.php +++ /dev/null @@ -1,139 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbCredentials implements MydbCredentialsInterface -{ - - /** - * Database credentials - hostname - * Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter, - * the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected string $host; - - /** - * Database credentials - username - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected string $username; - - /** - * Database credentials - password - * If provided or null, the MySQL server will attempt to authenticate the user against those user records - * which have no password only. This allows one username to be used with different permissions - * (depending on if a password as provided or not). - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected string $passwd; - - /** - * Database credentials - database name - * If provided will specify the default database to be used when performing queries. - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected string $dbname; - - /** - * Database credentials - port - * Specifies the port number to attempt to connect to the MySQL server. - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected ?int $port; - - /** - * Database credentials - socket - * Specifies the socket or named pipe that should be used. - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected ?string $socket; - - /** - * Database credentials - connection flags - * With the parameter flags you can set different connection options - * MYSQLI_CLIENT_COMPRESS - Use compression protocol - * MYSQLI_CLIENT_SSL - Use SSL (encryption) - * MULTI_STATEMENT flag is not supported in PHP - * - * @see https://www.php.net/manual/en/mysqli.real-connect.php - */ - protected int $flags; - - public function __construct( - string $host, - string $username, - string $passwd, - string $dbname, - ?int $port = null, - ?string $socket = null, - int $flags = 0, - ) { - $this->host = $host; - $this->username = $username; - $this->passwd = $passwd; - $this->dbname = $dbname; - $this->port = $port; - $this->socket = $socket; - $this->flags = $flags; - } - - public function getHost(): string - { - return $this->host; - } - - public function getUsername(): string - { - return $this->username; - } - - public function getPasswd(): string - { - return $this->passwd; - } - - public function getDbname(): string - { - return $this->dbname; - } - - public function getPort(): ?int - { - return $this->port; - } - - public function getSocket(): ?string - { - return $this->socket; - } - - public function getFlags(): int - { - return $this->flags; - } -} diff --git a/src/sql/MydbCredentialsInterface.php b/src/sql/MydbCredentialsInterface.php deleted file mode 100644 index 6866a4ddfb2..00000000000 --- a/src/sql/MydbCredentialsInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbCredentialsInterface -{ - public function getHost(): string; - - public function getUsername(): string; - - public function getPasswd(): string; - - public function getDbname(): string; - - public function getPort(): ?int; - - public function getSocket(): ?string; - - public function getFlags(): int; -} diff --git a/src/sql/MydbEnvironment.php b/src/sql/MydbEnvironment.php deleted file mode 100644 index 2e72acca614..00000000000 --- a/src/sql/MydbEnvironment.php +++ /dev/null @@ -1,263 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use sql\MydbException\EnvironmentException; -use function count; -use function error_reporting; -use function gc_collect_cycles; -use function gc_enabled; -use function ignore_user_abort; -use function ini_set; -use function pcntl_signal; -use function pcntl_signal_dispatch; -use function pcntl_signal_get_handler; -use function restore_error_handler; -use function set_error_handler; -use const E_ALL; -use const E_STRICT; -use const SIG_DFL; -use const SIGHUP; -use const SIGINT; -use const SIGTERM; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbEnvironment implements MydbEnvironmentInterface -{ - - /** - * @var array - */ - protected array $knownSignals = [SIGTERM, SIGINT, SIGHUP]; - - /** - * Any signals that were trapped during custom signal handler - * - * @var array - */ - protected array $trappedSignals = []; - - /** - * Backup of signal handlers - * Original signal handler, which replaced by custon trap - * @psalm-var array - */ - protected array $trappedHandlers = []; - - /** - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - * @SuppressWarnings("camelCase") - * @see https://www.php.net/manual/en/function.gc-collect-cycles - */ - public function gc_collect_cycles(): void - { - if (!gc_enabled()) { - // @codeCoverageIgnoreStart - return; - // @codeCoverageIgnoreEnd - } - - gc_collect_cycles(); - } - - /** - * Restore previous PHP error handler - * - * @see https://www.php.net/manual/en/function.restore-error-handler.php - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function restore_error_handler(): void - { - restore_error_handler(); - } - - /** - * Set custom PHP error handler - * - * @param callable|null $callback - * @see https://www.php.net/manual/en/function.set-error-handler - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function set_error_handler(?callable $callback = null, int $error_levels = E_ALL|E_STRICT): void - { - /** @var callable(int, string, string=, int=, array=):bool|null $newHandler */ - $newHandler = $callback ?? $this->getNullErrorHandler(); - - set_error_handler($newHandler, $error_levels); - } - - /** - * Set mysqlnd.net_read_timeout php ini value - * - * mysqlnd and the MySQL Client Library, libmysqlclient use different networking APIs. - * mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level network calls. - * PHP, by default, sets a read timeout of 60s for streams. - * This is set via php.ini, default_socket_timeout. - * This default applies to all streams that set no other timeout value. - * mysqlnd does not set any other value and therefore connections of long running queries can be disconnected - * after default_socket_timeout seconds resulting in an error message 2006 - MySQL Server has gone away. - * The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day) - * and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout. - * The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout. - * - * mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd. - * mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout. - * Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library - * and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and, - * prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation. - * - * @throws \sql\MydbException\EnvironmentException - * @see https://www.php.net/manual/en/mysqlnd.config.php - */ - public function setMysqlndNetReadTimeout(string $timeoutSeconds): bool - { - return (bool) $this->ini_set('mysqlnd.net_read_timeout', $timeoutSeconds); - } - - /** - * Sets which PHP errors are reported - * - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - * @SuppressWarnings("camelCase") - * @see https://www.php.net/manual/en/function.error-reporting - */ - public function error_reporting(int $level): int - { - return error_reporting($level); - } - - /** - * Set whether a client disconnect should abort script execution (does not affect CLI) - * - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - * @SuppressWarnings("camelCase") - * @see https://www.php.net/manual/en/function.ignore-user-abort - */ - public function ignore_user_abort(): int - { - return ignore_user_abort(); - } - - /** - * Sets the value of a configuration option - * - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - * @SuppressWarnings("camelCase") - * @throws \sql\MydbException\EnvironmentException - * @see https://www.php.net/manual/en/function.ini-set - */ - public function ini_set(string $key, string $value): string - { - $result = ini_set($key, $value); - if (false === $result) { - // @codeCoverageIgnoreStart - throw new EnvironmentException(); - // @codeCoverageIgnoreEnd - } - - return $result; - } - - /** - * Disable custom signal handler - * - * @see https://wiki.php.net/rfc/async_signals - * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/ - * @see https://www.php.net/manual/en/function.pcntl-signal - * - * @return array|null array of trapped signals - * @throws \sql\MydbException\EnvironmentException - */ - public function endSignalsTrap(): ?array - { - /** - * Process signals - */ - if (!pcntl_signal_dispatch()) { - // @codeCoverageIgnoreStart - throw new EnvironmentException(); - // @codeCoverageIgnoreEnd - } - - $trappedSignals = $this->trappedSignals; - foreach ($this->knownSignals as $signalNumber) { - /** - * Reset signals to previous/default handler - */ - $newHandler = $this->trappedHandlers[$signalNumber] ?? SIG_DFL; - - /** - * @psalm-suppress PossiblyInvalidArgument - */ - if (!pcntl_signal($signalNumber, $newHandler)) { - // @codeCoverageIgnoreStart - throw new EnvironmentException(); - // @codeCoverageIgnoreEnd - } - unset($this->trappedHandlers[$signalNumber]); - } - $this->trappedSignals = []; - - return count($trappedSignals) > 0 - ? $trappedSignals - : null; - } - - /** - * Enable custom signal handler - * - * @see https://wiki.php.net/rfc/async_signals - * @see https://blog.pascal-martin.fr/post/php71-en-other-new-things/ - * @see https://www.php.net/manual/en/function.pcntl-signal - * @throws \sql\MydbException\EnvironmentException - */ - public function startSignalsTrap(): void - { - $this->trappedSignals = []; - - $signalHandler = function (int $signalNumber): void { - $this->trappedSignals[] = $signalNumber; - }; - - foreach ($this->knownSignals as $signalNumber) { - $originalNandler = pcntl_signal_get_handler($signalNumber); - $this->trappedHandlers[$signalNumber] = $originalNandler; - - if (!pcntl_signal($signalNumber, $signalHandler)) { - // @codeCoverageIgnoreStart - throw new EnvironmentException(); - // @codeCoverageIgnoreEnd - } - } - } - - /** - * Error handler that does nothing and does not chain - * @see https://www.php.net/manual/en/function.set-error-handler - */ - protected function getNullErrorHandler(): callable - { - return static function (): bool { - return true; - }; - } -} diff --git a/src/sql/MydbEnvironmentInterface.php b/src/sql/MydbEnvironmentInterface.php deleted file mode 100644 index 28062c7cdf3..00000000000 --- a/src/sql/MydbEnvironmentInterface.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use const E_ALL; -use const E_STRICT; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbEnvironmentInterface -{ - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function gc_collect_cycles(): void; - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function restore_error_handler(): void; - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function set_error_handler(?callable $callback = null, int $error_levels = E_ALL|E_STRICT): void; - - public function setMysqlndNetReadTimeout(string $timeoutSeconds): bool; - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function error_reporting(int $level): int; - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function ignore_user_abort(): int; - - /** - * @SuppressWarnings("camelCase") - * @phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps - */ - public function ini_set(string $key, string $value): string; - - public function endSignalsTrap(): ?array; - - public function startSignalsTrap(): void; -} diff --git a/src/sql/MydbEvent.php b/src/sql/MydbEvent.php deleted file mode 100644 index 78d2e5ec1ca..00000000000 --- a/src/sql/MydbEvent.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use sql\MydbException\EventException; - -abstract class MydbEvent implements MydbEventInterface, MydbEventMetadataInterface -{ - - /** - * @psalm-return array|null - */ - abstract public function getEventMetadata(): ?array; - - /** - * @return array<\sql\MydbListenerInterface> - */ - abstract protected function getListeners(): array; - - /** - * @throws \sql\MydbException\EventException - */ - public function notify(): void - { - foreach ($this->getListeners() as $listenerInstance) { - if ($listenerInstance instanceof MydbListenerInterface) { - if (false === $listenerInstance->observe($this)) { - break; - } - } else { - throw new EventException(); - } - } - } - - public function getEventName(): string - { - return static::class; - } -} diff --git a/src/sql/MydbEvent/InternalConnectionBegin.php b/src/sql/MydbEvent/InternalConnectionBegin.php deleted file mode 100644 index 535df54305d..00000000000 --- a/src/sql/MydbEvent/InternalConnectionBegin.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbEvent; - -class InternalConnectionBegin extends InternalEvent -{ - public function __construct(string $host, string $dbname) - { - $this->data = [ - 'host' => $host, - 'dbname' => $dbname, - ]; - } -} diff --git a/src/sql/MydbEvent/InternalConnectionEnd.php b/src/sql/MydbEvent/InternalConnectionEnd.php deleted file mode 100644 index 77d0c9ae37c..00000000000 --- a/src/sql/MydbEvent/InternalConnectionEnd.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbEvent; - -class InternalConnectionEnd extends InternalEvent -{ - public function __construct(string $host, string $dbname, bool $success) - { - $this->data = [ - 'host' => $host, - 'dbname' => $dbname, - 'success' => $success, - ]; - } -} diff --git a/src/sql/MydbEvent/InternalEvent.php b/src/sql/MydbEvent/InternalEvent.php deleted file mode 100644 index 36298e50c64..00000000000 --- a/src/sql/MydbEvent/InternalEvent.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbEvent; - -use sql\MydbEvent; -use sql\MydbEventInterface; - -class InternalEvent extends MydbEvent -{ - - /** - * @psalm-var array<\sql\MydbListenerInterface> - */ - protected array $listeners = []; - - /** - * @psalm-var array|null - */ - protected ?array $data = null; - - public function getEventMetadata(): ?array - { - return $this->data; - } - - /** - * @psalm-param array<\sql\MydbListenerInterface> $listeners - */ - public function setListeners(array $listeners): MydbEventInterface - { - $this->listeners = $listeners; - - return $this; - } - - /** - * @psalm-return array<\sql\MydbListenerInterface> - */ - protected function getListeners(): array - { - return $this->listeners; - } -} diff --git a/src/sql/MydbEvent/InternalQueryBegin.php b/src/sql/MydbEvent/InternalQueryBegin.php deleted file mode 100644 index 555b3e68e0e..00000000000 --- a/src/sql/MydbEvent/InternalQueryBegin.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbEvent; - -class InternalQueryBegin extends InternalEvent -{ - public function __construct(string $sql) - { - $this->data = [ - 'sql' => $sql, - ]; - } -} diff --git a/src/sql/MydbEvent/InternalQueryEnd.php b/src/sql/MydbEvent/InternalQueryEnd.php deleted file mode 100644 index d2422f6bdce..00000000000 --- a/src/sql/MydbEvent/InternalQueryEnd.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbEvent; - -class InternalQueryEnd extends InternalEvent -{ - public function __construct(string $sql, bool $success) - { - $this->data = [ - 'sql' => $sql, - 'success' => $success, - ]; - } -} diff --git a/src/sql/MydbEventInterface.php b/src/sql/MydbEventInterface.php deleted file mode 100644 index 7caf9947750..00000000000 --- a/src/sql/MydbEventInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -interface MydbEventInterface -{ - public function notify(): void; -} diff --git a/src/sql/MydbEventMetadataInterface.php b/src/sql/MydbEventMetadataInterface.php deleted file mode 100644 index 97089d1c471..00000000000 --- a/src/sql/MydbEventMetadataInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -interface MydbEventMetadataInterface -{ - /** - * @psalm-return array|null - */ - public function getEventMetadata(): ?array; - - public function getEventName(): string; -} diff --git a/src/sql/MydbException.php b/src/sql/MydbException.php deleted file mode 100644 index fe25066cb0a..00000000000 --- a/src/sql/MydbException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use Exception; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbException extends Exception -{ - -} diff --git a/src/sql/MydbException/ConnectDefaultsException.php b/src/sql/MydbException/ConnectDefaultsException.php deleted file mode 100644 index a25f7d4b10c..00000000000 --- a/src/sql/MydbException/ConnectDefaultsException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class ConnectDefaultsException extends MydbException -{ - -} diff --git a/src/sql/MydbException/ConnectException.php b/src/sql/MydbException/ConnectException.php deleted file mode 100644 index aa547fc9762..00000000000 --- a/src/sql/MydbException/ConnectException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class ConnectException extends MydbException -{ - -} diff --git a/src/sql/MydbException/DeleteException.php b/src/sql/MydbException/DeleteException.php deleted file mode 100644 index f892bfab1b5..00000000000 --- a/src/sql/MydbException/DeleteException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class DeleteException extends MydbException -{ - -} diff --git a/src/sql/MydbException/DisconnectException.php b/src/sql/MydbException/DisconnectException.php deleted file mode 100644 index 8cdda1745dd..00000000000 --- a/src/sql/MydbException/DisconnectException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class DisconnectException extends MydbException -{ - -} diff --git a/src/sql/MydbException/EnvironmentException.php b/src/sql/MydbException/EnvironmentException.php deleted file mode 100644 index d0e2dd49098..00000000000 --- a/src/sql/MydbException/EnvironmentException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class EnvironmentException extends MydbException -{ - -} diff --git a/src/sql/MydbException/EventException.php b/src/sql/MydbException/EventException.php deleted file mode 100644 index df7220a8a8d..00000000000 --- a/src/sql/MydbException/EventException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class EventException extends MydbException -{ - -} diff --git a/src/sql/MydbException/InternalException.php b/src/sql/MydbException/InternalException.php deleted file mode 100644 index ca06c5d81e2..00000000000 --- a/src/sql/MydbException/InternalException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class InternalException extends MydbException -{ - -} diff --git a/src/sql/MydbException/LoggerException.php b/src/sql/MydbException/LoggerException.php deleted file mode 100644 index 130399b7db3..00000000000 --- a/src/sql/MydbException/LoggerException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class LoggerException extends MydbException -{ - -} diff --git a/src/sql/MydbException/OptionException.php b/src/sql/MydbException/OptionException.php deleted file mode 100644 index 56c7ca57325..00000000000 --- a/src/sql/MydbException/OptionException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class OptionException extends MydbException -{ - -} diff --git a/src/sql/MydbException/QueryBuilderEscapeException.php b/src/sql/MydbException/QueryBuilderEscapeException.php deleted file mode 100644 index a6ca7918ff6..00000000000 --- a/src/sql/MydbException/QueryBuilderEscapeException.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; -use Throwable; -use function sprintf; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class QueryBuilderEscapeException extends MydbException -{ - protected const MESSAGE_TEMPLATE = 'Failed to escape value: %s'; - - public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null) - { - parent::__construct(sprintf(self::MESSAGE_TEMPLATE, $message), $code, $previous); - } -} diff --git a/src/sql/MydbException/QueryBuilderException.php b/src/sql/MydbException/QueryBuilderException.php deleted file mode 100644 index 5b0715a95f8..00000000000 --- a/src/sql/MydbException/QueryBuilderException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class QueryBuilderException extends MydbException -{ - -} diff --git a/src/sql/MydbException/RegistryException.php b/src/sql/MydbException/RegistryException.php deleted file mode 100644 index 7fbd7f0cf7d..00000000000 --- a/src/sql/MydbException/RegistryException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class RegistryException extends MydbException -{ - -} diff --git a/src/sql/MydbException/ServerGoneException.php b/src/sql/MydbException/ServerGoneException.php deleted file mode 100644 index 541c35d9904..00000000000 --- a/src/sql/MydbException/ServerGoneException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class ServerGoneException extends MydbException -{ - -} diff --git a/src/sql/MydbException/TerminationSignalException.php b/src/sql/MydbException/TerminationSignalException.php deleted file mode 100644 index fac04a6060f..00000000000 --- a/src/sql/MydbException/TerminationSignalException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TerminationSignalException extends MydbException -{ - -} diff --git a/src/sql/MydbException/TransactionAutocommitException.php b/src/sql/MydbException/TransactionAutocommitException.php deleted file mode 100644 index 480ae1ebbfc..00000000000 --- a/src/sql/MydbException/TransactionAutocommitException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionAutocommitException extends MydbException -{ - -} diff --git a/src/sql/MydbException/TransactionBeginException.php b/src/sql/MydbException/TransactionBeginException.php deleted file mode 100644 index d3ceda35468..00000000000 --- a/src/sql/MydbException/TransactionBeginException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionBeginException extends MydbException -{ - -} diff --git a/src/sql/MydbException/TransactionBeginReadonlyException.php b/src/sql/MydbException/TransactionBeginReadonlyException.php deleted file mode 100644 index f8a6113be9a..00000000000 --- a/src/sql/MydbException/TransactionBeginReadonlyException.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionBeginReadonlyException extends TransactionBeginException -{ - -} diff --git a/src/sql/MydbException/TransactionBeginReadwriteException.php b/src/sql/MydbException/TransactionBeginReadwriteException.php deleted file mode 100644 index f9c15a17686..00000000000 --- a/src/sql/MydbException/TransactionBeginReadwriteException.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionBeginReadwriteException extends TransactionBeginException -{ - -} diff --git a/src/sql/MydbException/TransactionCommitException.php b/src/sql/MydbException/TransactionCommitException.php deleted file mode 100644 index 1c596847d75..00000000000 --- a/src/sql/MydbException/TransactionCommitException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionCommitException extends MydbException -{ - -} diff --git a/src/sql/MydbException/TransactionIsolationException.php b/src/sql/MydbException/TransactionIsolationException.php deleted file mode 100644 index 24996faa37a..00000000000 --- a/src/sql/MydbException/TransactionIsolationException.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionIsolationException extends TransactionBeginException -{ - -} diff --git a/src/sql/MydbException/TransactionRollbackException.php b/src/sql/MydbException/TransactionRollbackException.php deleted file mode 100644 index 943587a9feb..00000000000 --- a/src/sql/MydbException/TransactionRollbackException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class TransactionRollbackException extends MydbException -{ - -} diff --git a/src/sql/MydbException/UpdateException.php b/src/sql/MydbException/UpdateException.php deleted file mode 100644 index c3dd2da55e3..00000000000 --- a/src/sql/MydbException/UpdateException.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbException; - -use sql\MydbException; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category exceptions - * @see https://github.com/sshilko/php-sql-mydb - */ -class UpdateException extends MydbException -{ - -} diff --git a/src/sql/MydbExpression.php b/src/sql/MydbExpression.php deleted file mode 100644 index ed448d97c58..00000000000 --- a/src/sql/MydbExpression.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbExpression implements MydbExpressionInterface -{ - - public function __construct(protected string $input) - { - } - - public function __toString(): string - { - return $this->input; - } -} diff --git a/src/sql/MydbExpressionInterface.php b/src/sql/MydbExpressionInterface.php deleted file mode 100644 index 6737bc349d2..00000000000 --- a/src/sql/MydbExpressionInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbExpressionInterface -{ - /** - * As of PHP8.0 this is Stringable interface - */ - public function __toString(): string; -} diff --git a/src/sql/MydbInterface.php b/src/sql/MydbInterface.php deleted file mode 100644 index 40c07faede1..00000000000 --- a/src/sql/MydbInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbInterface extends - MydbInterface\EncoderInterface, - MydbInterface\CommandInterface, - MydbInterface\QueryInterface, - MydbInterface\DataManipulationStatementsInterface, - MydbInterface\TransactionInterface, - MydbInterface\AdministrationStatementsInterface -{ - -} diff --git a/src/sql/MydbInterface/AdministrationStatementsInterface.php b/src/sql/MydbInterface/AdministrationStatementsInterface.php deleted file mode 100644 index 1d890f976cd..00000000000 --- a/src/sql/MydbInterface/AdministrationStatementsInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @see https://dev.mysql.com/doc/refman/8.0/en/sql-server-administration-statements.html - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface AdministrationStatementsInterface -{ - /** - * Get table primary keys - * @return ?array - */ - public function getPrimaryKeys(string $table): ?array; - - /** - * @return array - */ - public function getEnumValues(string $table, string $column): array; -} diff --git a/src/sql/MydbInterface/CommandInterface.php b/src/sql/MydbInterface/CommandInterface.php deleted file mode 100644 index 416880aa111..00000000000 --- a/src/sql/MydbInterface/CommandInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface CommandInterface -{ - /** - * Execute any SQL command, without returning result - * @param string $query sql command - * @return bool true success or false on failure - */ - public function command(string $query): bool; -} diff --git a/src/sql/MydbInterface/DataManipulationStatementsInterface.php b/src/sql/MydbInterface/DataManipulationStatementsInterface.php deleted file mode 100644 index 48ae2b5a614..00000000000 --- a/src/sql/MydbInterface/DataManipulationStatementsInterface.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * These statements do not implicitly commit the current transaction. - * - * Data Manipulation Language (DML) statements are used for managing data within - * schema objects DML deals with data manipulation, and therefore includes most common - * SQL statements such as SELECT, INSERT, etc. DML allows adding / modifying / deleting data itself. - * - * @see https://dev.mysql.com/doc/refman/8.0/en/sql-data-manipulation-statements.html - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface DataManipulationStatementsInterface -{ - /** - * @param array $update - */ - public function updateWhere(array $update, array $whereFields, string $table, array $whereNotFields = []): ?int; - - public function deleteWhere(array $whereFields, string $table, array $whereNotFields = []): ?int; - - public function updateWhereMany(array $columnSetWhere, array $where, string $table): void; - - /** - * @psalm-param array> $data - * @param array $cols - */ - public function insertMany( - array $data, - array $cols, - string $table, - bool $ignore = false, - string $onDuplicateSql = '', - ): void; - - /** - * @param array $data - */ - public function insertOne(array $data, string $table): ?string; - - /** - * @param array $data - */ - public function replaceOne(array $data, string $table): ?string; - - public function select(string $query): ?array; - - public function insert(string $query): ?string; - - public function update(string $query): ?int; - - public function delete(string $query): ?int; - - public function replace(string $query): ?string; -} diff --git a/src/sql/MydbInterface/EncoderInterface.php b/src/sql/MydbInterface/EncoderInterface.php deleted file mode 100644 index 16764c2a78d..00000000000 --- a/src/sql/MydbInterface/EncoderInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - * @phpcs:disable SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName - */ -interface EncoderInterface -{ - /** - * Escape value for the SQL query - * - * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped - */ - public function escape($unescaped, string $quote = "'"): string; -} diff --git a/src/sql/MydbInterface/QueryInterface.php b/src/sql/MydbInterface/QueryInterface.php deleted file mode 100644 index 2cc322b2487..00000000000 --- a/src/sql/MydbInterface/QueryInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface QueryInterface -{ - /** - * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint - */ - public function query(string $query): ?array; -} diff --git a/src/sql/MydbInterface/RemoteResourceInterface.php b/src/sql/MydbInterface/RemoteResourceInterface.php deleted file mode 100644 index c7bad9de1db..00000000000 --- a/src/sql/MydbInterface/RemoteResourceInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface RemoteResourceInterface -{ - /** - * Open remote server connection - */ - public function open(): bool; - - /** - * Cleanup remote server connection - * will NOT close persistent connections - */ - public function close(): void; -} diff --git a/src/sql/MydbInterface/TransactionInterface.php b/src/sql/MydbInterface/TransactionInterface.php deleted file mode 100644 index 961d7d15f98..00000000000 --- a/src/sql/MydbInterface/TransactionInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @category interfaces - * @see https://github.com/sshilko/php-sql-mydb - */ -interface TransactionInterface -{ - public function beginTransaction(): void; - - public function commitTransaction(): void; - - public function rollbackTransaction(): void; -} diff --git a/src/sql/MydbListener.php b/src/sql/MydbListener.php deleted file mode 100644 index 3672f2e8c40..00000000000 --- a/src/sql/MydbListener.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -abstract class MydbListener implements MydbListenerInterface -{ - abstract protected function onEvent(MydbEventMetadataInterface $event): ?bool; - - public function observe(MydbEventMetadataInterface $event): bool - { - return false !== $this->onEvent($event); - } -} diff --git a/src/sql/MydbListener/InternalListener.php b/src/sql/MydbListener/InternalListener.php deleted file mode 100644 index f502f63258a..00000000000 --- a/src/sql/MydbListener/InternalListener.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbListener; - -use Psr\Log\LoggerInterface; -use sql\MydbEvent\InternalConnectionBegin; -use sql\MydbEvent\InternalConnectionEnd; -use sql\MydbEventMetadataInterface; -use sql\MydbListener; -use function in_array; -use function is_array; -use function is_null; - -class InternalListener extends MydbListener -{ - - public function __construct(protected ?LoggerInterface $logger = null) - { - } - - protected function onEvent(MydbEventMetadataInterface $event): ?bool - { - if (in_array($event->getEventName(), [InternalConnectionBegin::class, InternalConnectionEnd::class], true)) { - if ($this->logger) { - $this->logger->debug( - 'Received event: ' . $event->getEventName() - ); - } - } - - return is_array($event->getEventMetadata()) || is_null($event->getEventMetadata()); - } -} diff --git a/src/sql/MydbListenerInterface.php b/src/sql/MydbListenerInterface.php deleted file mode 100644 index ef14c317eb0..00000000000 --- a/src/sql/MydbListenerInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -interface MydbListenerInterface -{ - public function observe(MydbEventMetadataInterface $event): bool; -} diff --git a/src/sql/MydbLogger.php b/src/sql/MydbLogger.php deleted file mode 100644 index ba28591f105..00000000000 --- a/src/sql/MydbLogger.php +++ /dev/null @@ -1,342 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; -use sql\MydbException\LoggerException; -use function clearstatcache; -use function count; -use function fclose; -use function feof; -use function fflush; -use function fwrite; -use function is_resource; -use function is_scalar; -use function restore_error_handler; -use function set_error_handler; -use function stream_get_meta_data; -use function strlen; -use function strtr; -use function substr; -use function var_export; -use const PHP_EOL; -use const STDERR; -use const STDOUT; - -/** - * Implementation of PSR-3 Logger that will output to STDERR & STDOUT - * - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * @see https://www.php-fig.org/psr/psr-3/ - */ -class MydbLogger implements LoggerInterface -{ - protected const IO_WRITE_ATTEMPTS = 3; - - /** - * Opened resource, STDOUT - * @see https://www.php.net/manual/en/features.commandline.io-streams.php - * - * @var resource - */ - protected $stdout; - - /** - * Opened resource, STDERR - * @see https://www.php.net/manual/en/features.commandline.io-streams.php - * - * @var resource - */ - protected $stderr; - - /** - * End of line delimiter - */ - protected string $stdeol = PHP_EOL; - - /** - * @param resource $stdout - * @param resource $stderr - * @psalm-suppress MissingParamType - * @throws \sql\MydbException\LoggerException - */ - public function __construct($stdout = STDOUT, $stderr = STDERR, string $stdeol = PHP_EOL) - { - /** - * @psalm-suppress DocblockTypeContradiction - */ - if (!is_resource($stdout) || !is_resource($stderr)) { - throw new LoggerException(); - } - - $this->stdout = $stdout; - $this->stderr = $stderr; - $this->stdeol = $stdeol; - } - - public function __destruct() - { - /** - * @psalm-suppress RedundantConditionGivenDocblockType - */ - if (is_resource($this->stdout)) { - fflush($this->stdout); - fclose($this->stdout); - } - - /** - * @psalm-suppress RedundantConditionGivenDocblockType - */ - if (is_resource($this->stderr)) { - fflush($this->stderr); - fclose($this->stderr); - } - clearstatcache(); - } - - /** - * @throws \sql\MydbException\LoggerException - * @param array|string $message - */ - public function error($message, array $context = []): void - { - if ([] !== $message && '' !== $message) { - $this->writeOutput($this->stderr, static::formatter($message) . $this->stdeol); - } - - if (!count($context)) { - return; - } - - $this->writeOutput($this->stderr, static::formatter($context) . $this->stdeol); - } - - /** - * @param mixed $level - * @param array|string $message - * @throws \sql\MydbException\LoggerException - * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter - */ - public function log($level, $message, array $context = []): void - { - if ([] !== $message && '' !== $message) { - $this->writeOutput($this->stdout, static::formatter($message) . $this->stdeol); - } - - if (!count($context)) { - return; - } - - $this->writeOutput($this->stdout, static::formatter($context) . $this->stdeol); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function warning($message, array $context = []): void - { - $this->error($message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function emergency($message, array $context = []): void - { - $this->error($message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function alert($message, array $context = []): void - { - $this->error($message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function critical($message, array $context = []): void - { - $this->error($message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function notice($message, array $context = []): void - { - $this->log(LogLevel::NOTICE, $message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function info($message, array $context = []): void - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * @param array|string $message - * @throws \sql\MydbException\LoggerException - */ - public function debug($message, array $context = []): void - { - $this->log(LogLevel::DEBUG, $message, $context); - } - - /** - * @param resource $stream &fs.file.pointer; - * @link https://php.net/manual/en/function.fwrite.php - * @throws \sql\MydbException\LoggerException - */ - protected function checkStreamResource($stream): void - { - /** - * is_resource checks whether resource was closed with i.e. fclose() - * @psalm-suppress DocblockTypeContradiction - * @psalm-suppress RedundantConditionGivenDocblockType - */ - if (false === is_resource($stream)) { - throw new LoggerException('Stream resource is not valid or already closed'); - } - - $info = stream_get_meta_data($stream); - - if ($info['timed_out'] || $info['eof'] || feof($stream)) { - throw new LoggerException(); - } - - if ('' !== $info['mode'] && strtr($info['mode'], 'waxc+', '.....') === $info['mode']) { - throw new LoggerException('Stream resource is not opened in write mode'); - } - } - - /** - * @param resource $stream &fs.file.pointer; - * @link https://php.net/manual/en/function.fwrite.php - * @throws \sql\MydbException\LoggerException - * @psalm-suppress MissingParamType - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh - */ - protected function writeOutput($stream, string $data = ''): void - { - $this->checkStreamResource($stream); - - $tries = self::IO_WRITE_ATTEMPTS; - $len = strlen($data); - - /** @phan-suppress-next-line PhanNoopConstant */ - for ($written = 0; $written < $len; true) { - $chunk = substr($data, $written); - if ('' === $chunk) { - // @codeCoverageIgnoreStart - throw new LoggerException(); - // @codeCoverageIgnoreEnd - } - - $writeResult = $this->fwrite($stream, $chunk); - - if (null === $writeResult || feof($stream)) { - // @codeCoverageIgnoreStart - throw new LoggerException(); - // @codeCoverageIgnoreEnd - } - - if (false === fflush($stream)) { - // @codeCoverageIgnoreStart - throw new LoggerException(); - // @codeCoverageIgnoreEnd - } - - $written += $writeResult; - - if ($written < $len) { - // @codeCoverageIgnoreStart - throw new LoggerException(); - // @codeCoverageIgnoreEnd - } - - if (0 === $writeResult) { - // @codeCoverageIgnoreStart - --$tries; - // @codeCoverageIgnoreEnd - } - - if ($tries <= 0) { - // @codeCoverageIgnoreStart - throw new LoggerException(); - // @codeCoverageIgnoreEnd - } - } - } - - /** - * @param resource $stream - */ - protected function fwrite($stream, string $data): ?int - { - $error = null; - - /** - * @psalm-suppress InvalidArgument - */ - set_error_handler( - static function ($_, string $errstr) use (&$error): bool { - // @codeCoverageIgnoreStart - $error = $errstr; - - return true; - // @codeCoverageIgnoreEnd - } - ); - - $sent = fwrite($stream, $data); - - restore_error_handler(); - - if (null !== $error || false === $sent) { - // @codeCoverageIgnoreStart - return null; - // @codeCoverageIgnoreEnd - } - - return $sent; - } - - /** - * @param string|array $var - */ - protected static function formatter($var): string - { - if (is_scalar($var)) { - return $var; - } - - return var_export($var, true); - } -} diff --git a/src/sql/MydbMysqli.php b/src/sql/MydbMysqli.php deleted file mode 100644 index 25b69085023..00000000000 --- a/src/sql/MydbMysqli.php +++ /dev/null @@ -1,607 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use mysqli; -use mysqli_result; -use sql\MydbMysqli\MydbMysqliResult; -use function array_merge; -use function array_values; -use function in_array; -use function max; -use function mysqli_report; -use function sprintf; -use const MYSQLI_INIT_COMMAND; -use const MYSQLI_OPT_CONNECT_TIMEOUT; -use const MYSQLI_OPT_NET_CMD_BUFFER_SIZE; -use const MYSQLI_OPT_NET_READ_BUFFER_SIZE; -use const MYSQLI_OPT_READ_TIMEOUT; -use const MYSQLI_REPORT_ALL; -use const MYSQLI_REPORT_INDEX; -use const MYSQLI_REPORT_STRICT; -use const MYSQLI_STORE_RESULT_COPY_DATA; -use const MYSQLI_TRANS_COR_NO_RELEASE; -use const MYSQLI_TRANS_COR_RELEASE; -use const MYSQLI_TRANS_START_READ_ONLY; -use const MYSQLI_TRANS_START_READ_WRITE; - -/** - * Facade for php mysqli extension - * - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * @see https://www.php.net/manual/en/class.mysqli - */ -class MydbMysqli implements MydbMysqliInterface -{ - /** - * Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting. - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_INIT_COMMAND = MYSQLI_INIT_COMMAND; - - /** - * Connect timeout in seconds - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_OPT_CONNECT_TIMEOUT = MYSQLI_OPT_CONNECT_TIMEOUT; - - /** - * The size of the internal command/network buffer. Only valid for mysqlnd. - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_OPT_NET_CMD_BUFFER_SIZE = MYSQLI_OPT_NET_CMD_BUFFER_SIZE; - - /** - * Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd. - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_OPT_NET_READ_BUFFER_SIZE = MYSQLI_OPT_NET_READ_BUFFER_SIZE; - - /** - * Command execution result timeout in seconds. Available as of PHP 7.2.0. - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_OPT_READ_TIMEOUT = MYSQLI_OPT_READ_TIMEOUT; - - /** - * Copy results from the internal mysqlnd buffer into the PHP variables fetched. - * By default, mysqlnd will use a reference logic to avoid copying and duplicating results - * held in memory. For certain result sets, for example, result sets with many small rows, - * the copy approach can reduce the overall memory usage because PHP variables holding - * results may be released earlier (available with mysqlnd only) - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_STORE_RESULT_COPY_DATA = MYSQLI_STORE_RESULT_COPY_DATA; - - /** - * Appends "RELEASE" to mysqli_commit() or mysqli_rollback(). - * The RELEASE clause causes the server to disconnect the current client session - * after terminating the current transaction - * - * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_TRANS_COR_RELEASE = MYSQLI_TRANS_COR_RELEASE; - - /** - * Start the transaction as "START TRANSACTION READ ONLY" with mysqli_begin_transaction(). - * - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_TRANS_START_READ_ONLY = MYSQLI_TRANS_START_READ_ONLY; - - /** - * Start the transaction as "START TRANSACTION READ WRITE" with mysqli_begin_transaction(). - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_TRANS_START_READ_WRITE = MYSQLI_TRANS_START_READ_WRITE; - - /** - * Appends "NO RELEASE" to mysqli_commit() or mysqli_rollback(). - * The NO RELEASE clause asks the server to not disconnect the current client session - * after terminating the current transaction - * - * @see https://dev.mysql.com/doc/refman/8.0/en/commit.html - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_TRANS_COR_NO_RELEASE = MYSQLI_TRANS_COR_NO_RELEASE; - - /** - * Set all options on (report all), report all warnings/errors. - * - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_REPORT_ALL = MYSQLI_REPORT_ALL; - - /** - * Report if no index or bad index was used in a query. - * - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_REPORT_INDEX = MYSQLI_REPORT_INDEX; - - /** - * Throw a mysqli_sql_exception for errors instead of warnings. - * - * @see https://www.php.net/manual/en/mysqli.constants.php - */ - public const MYSQLI_REPORT_STRICT = MYSQLI_REPORT_STRICT; - - /** - * Safe MySQL SQL_MODE - * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional - */ - protected const SQL_MODE = 'TRADITIONAL'; - - /** - * Mysqli instance - * The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above - * - * @see http://dev.mysql.com/doc/ - * @see https://www.php.net/manual/en/mysqli.overview.php - * @see https://www.php.net/manual/en/intro.mysqli.php - * @see https://www.php.net/manual/en/class.mysqli - */ - protected ?mysqli $mysqli = null; - - /** - * Flag indicating whether physical connection was established with remote server - * Is connected to remove server - */ - protected bool $isConnected = false; - - /** - * Flag indicating whether SQL transaction was started - * WARNING: best-effort, only guaranteed when library is used correctly - * Is transaction started - */ - protected bool $isTransaction = false; - - public function __construct(?mysqli $resource = null) - { - if (!$resource) { - return; - } - - $this->mysqli = $resource; - } - - /** - * Allocate mysqli resource instance, no physical connection to remote is done - * - */ - public function init(): bool - { - if (null !== $this->mysqli) { - /** - * Prevent zombie connections - */ - return false; - } - - /** - * @see https://php.net/manual/en/mysqli.construct.php - * @see https://wiki.php.net/rfc/improve_mysqli - */ - $init = new mysqli(); - $this->mysqli = $init; - - return true; - } - - /** - * Set various options that affect mysqli resource, before connection is established - * - * @see https://www.php.net/manual/en/mysqli.options.php - * @throws \sql\MydbException\EnvironmentException - */ - public function setTransportOptions(MydbOptionsInterface $options, MydbEnvironmentInterface $environment): bool - { - if (null === $this->mysqli) { - return false; - } - - $ignoreUserAbort = $environment->ignore_user_abort(); - $selectTimeout = $options->getServerSideSelectTimeout(); - - /** - * Prevent entry of invalid values such as those that are out of range, or NULL specified for NOT NULL columns - * TRADITIONAL = strict mode - * - * @see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_traditional - */ - $mysqliInit = sprintf('SET SESSION sql_mode = %s', self::SQL_MODE); - if ($ignoreUserAbort < 1) { - $mysqliInit .= sprintf(', SESSION max_execution_time = %s', $selectTimeout * 10000); - } - - $connectTimeout = $options->getConnectTimeout(); - $readTimeout = $options->getReadTimeout(); - $netReadTimeout = (string) (max($selectTimeout, $readTimeout) + $connectTimeout); - - return - $environment->setMysqlndNetReadTimeout($netReadTimeout) && - $this->mysqli->options(self::MYSQLI_INIT_COMMAND, $mysqliInit) && - $this->mysqli->options(self::MYSQLI_OPT_CONNECT_TIMEOUT, $connectTimeout) && - $this->mysqli->options(self::MYSQLI_OPT_READ_TIMEOUT, $readTimeout) && - $this->mysqli->options(self::MYSQLI_OPT_NET_CMD_BUFFER_SIZE, $options->getNetworkBufferSize()) && - $this->mysqli->options(self::MYSQLI_OPT_NET_READ_BUFFER_SIZE, $options->getNetworkReadBuffer()); - } - - public function setTransactionIsolationLevel(string $level): bool - { - /** - * SESSION is explicitly required, - * otherwise 'The statement applies only to the next single transaction performed within the session' - * - * @see https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html - */ - return $this->realQuery(sprintf('SET SESSION TRANSACTION ISOLATION LEVEL %s', $level)); - } - - public function isTransactionOpen(): bool - { - /** - * Ignore autocommit setting here - */ - return $this->isTransaction; - } - - public function isConnected(): bool - { - return $this->mysqli && $this->isConnected; - } - - public function getMysqli(): ?mysqli - { - return $this->mysqli; - } - - /** - * @see https://www.php.net/manual/en/mysqli.real-query.php - */ - public function realQuery(string $query): bool - { - if ($this->mysqli && $this->isConnected()) { - return $this->mysqli->real_query($query); - } - - return false; - } - - /** - * React to mysqli resource changes after query/command execution - */ - public function readServerResponse(MydbEnvironmentInterface $environment): ?MydbMysqliResult - { - if ($this->mysqli && $this->isConnected()) { - $events = []; - - $warnings = []; - - $result = $this->extractServerResponse($environment, $events); - - $fieldsCount = $this->getFieldCount(); - - if ($this->getWarningCount() > 0) { - $warnings = array_merge($warnings, $this->getWarnings()); - } - if ($events) { - $warnings = array_merge($warnings, array_values($events)); - } - - /** @var array $warnings */ - $response = new MydbMysqliResult($result, $warnings, $fieldsCount ?? 0); - - $error = $this->getError(); - if (null !== $error && '' !== $error) { - $response->setErrorMessage($error); - } - - $errno = $this->getErrNo(); - if ($errno > 0) { - $response->setErrorNumber($errno); - } - - return $response; - } - - return null; - } - - /** - * @see https://www.php.net/manual/en/mysqli.real-escape-string.php - */ - public function realEscapeString(string $string): ?string - { - if (!$this->mysqli || !$this->isConnected()) { - return null; - } - - return $this->mysqli->real_escape_string($string); - } - - /** - * @see https://www.php.net/manual/en/mysqli.begin-transaction.php - */ - public function beginTransactionReadwrite(): bool - { - if ($this->mysqli && - $this->isConnected() && - $this->mysqli->begin_transaction(self::MYSQLI_TRANS_START_READ_WRITE)) { - $this->isTransaction = true; - - return true; - } - - return false; - } - - /** - * @see https://www.php.net/manual/en/mysqli.begin-transaction.php - */ - public function beginTransactionReadonly(): bool - { - if ($this->mysqli && - $this->isConnected() && - $this->mysqli->begin_transaction(self::MYSQLI_TRANS_START_READ_ONLY)) { - $this->isTransaction = true; - - return true; - } - - return false; - } - - /** - * @see https://www.php.net/manual/en/mysqli.rollback.php - */ - public function rollback(): bool - { - /** - * ignore isTransaction state, do not rely on it, instead do what user requested - */ - if ($this->mysqli && $this->isConnected() && $this->mysqli->rollback(self::MYSQLI_TRANS_COR_NO_RELEASE)) { - $this->isTransaction = false; - - return true; - } - - return false; - } - - /** - * Commit transaction and release connection from server side - */ - public function commitAndRelease(): bool - { - if ($this->mysqli && $this->isConnected() && $this->mysqli->commit(self::MYSQLI_TRANS_COR_RELEASE)) { - $this->isTransaction = false; - - return true; - } - - return false; - } - - public function commit(): bool - { - if ($this->mysqli && $this->isConnected() && $this->mysqli->commit(self::MYSQLI_TRANS_COR_NO_RELEASE)) { - $this->isTransaction = false; - - return true; - } - - return false; - } - - public function realConnect( - string $host, - string $username, - string $password, - string $dbname, - ?int $port, - ?string $socket, - int $flags, - ): bool { - if ($this->mysqli && !$this->isConnected() && $this->mysqli->real_connect( - $host, - $username, - $password, - $dbname, - (int) $port, - (string) $socket, - $flags - )) { - $this->isConnected = true; - - return true; - } - - return false; - } - - public function mysqliReport(int $level): bool - { - return mysqli_report($level); - } - - public function close(): bool - { - if ($this->mysqli) { - if ($this->isConnected()) { - /** - * Ignore close() success/failure - */ - $this->mysqli->close(); - $this->isConnected = false; - } - - $this->mysqli = null; - - return true; - } - - return false; - } - - public function getConnectErrno(): ?int - { - return $this->mysqli - ? $this->mysqli->connect_errno - : null; - } - - public function getConnectError(): ?string - { - return $this->mysqli - ? $this->mysqli->connect_error - : null; - } - - public function isServerGone(): bool - { - return in_array($this->getErrNo(), [2002, 2006], true); - } - - public function getError(): ?string - { - return $this->mysqli - ? $this->mysqli->error - : null; - } - - public function getErrNo(): ?int - { - return $this->mysqli - ? $this->mysqli->errno - : null; - } - - public function getAffectedRows(): ?int - { - $rows = $this->mysqli - ? (int) $this->mysqli->affected_rows - : null; - if (0 === $rows || $rows > 0) { - return $rows; - } - - /** - * mysqli_affected_rows - * An integer greater than zero indicates the number of rows affected or retrieved. - * Zero indicates that no records where updated for an UPDATE statement, - * no rows matched the WHERE clause in the query or that no query has yet been executed. - * -1 indicates that the query returned an error. - */ - return null; - } - - /** - * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint - */ - public function getInsertId(): int|string|null - { - return $this->mysqli - ? $this->mysqli->insert_id - : null; - } - - public function autocommit(bool $enable): bool - { - if ($this->mysqli && $this->mysqli->autocommit($enable)) { - if ($enable) { - /** - * Some statement implicitly commit transaction - * @see https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html - */ - $this->isTransaction = false; - } - - return true; - } - - return false; - } - - /** - * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference - * @param array $events - */ - public function extractServerResponse(MydbEnvironmentInterface $environment, array &$events): ?mysqli_result - { - if (null === $this->mysqli) { - return null; - } - - /** - * @psalm-suppress UnusedClosureParam - */ - $environment->set_error_handler(static function (int $errno, string $error) use (&$events) { - $events[$errno] = $error; - - return true; - }); - - $result = $this->mysqli->store_result(self::MYSQLI_STORE_RESULT_COPY_DATA); - $environment->restore_error_handler(); - - if (false === $result) { - return null; - } - - return $result; - } - - public function getWarnings(): array - { - if ($this->mysqli) { - $warnings = $this->mysqli->get_warnings(); - $array = []; - do { - $array[] = $warnings->message; - } while ($warnings->next()); - - return $array; - } - - return []; - } - - /** - * Returns fields count caused by query execution - * Requires store_result to be called first - * @see mysqli::store_result() - */ - protected function getFieldCount(): ?int - { - return $this->mysqli ? $this->mysqli->field_count : null; - } - - /** - * Returns warnings caused by query execution - * Requires store_result to be called first - * @see mysqli::store_result() - */ - protected function getWarningCount(): ?int - { - return $this->mysqli - ? $this->mysqli->warning_count - : null; - } -} diff --git a/src/sql/MydbMysqli/MydbMysqliEscapeStringInterface.php b/src/sql/MydbMysqli/MydbMysqliEscapeStringInterface.php deleted file mode 100644 index 83cee7e173f..00000000000 --- a/src/sql/MydbMysqli/MydbMysqliEscapeStringInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbMysqli; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbMysqliEscapeStringInterface -{ - public function realEscapeString(string $string): ?string; -} diff --git a/src/sql/MydbMysqli/MydbMysqliResult.php b/src/sql/MydbMysqli/MydbMysqliResult.php deleted file mode 100644 index 668debbb36d..00000000000 --- a/src/sql/MydbMysqli/MydbMysqliResult.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbMysqli; - -use mysqli_result; -use const MYSQLI_ASSOC; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * @access protected - */ -class MydbMysqliResult implements MydbMysqliResultInterface -{ - protected const MYSQLI_ASSOC = MYSQLI_ASSOC; - - protected ?array $result = null; - - /** - * @psalm-var array - * @phpcs:disable SlevomatCodingStandard.Classes.RequireConstructorPropertyPromotion.RequiredConstructorPropertyPromotion - */ - protected array $warnings; - - protected ?string $errorMessage = null; - - protected int $errorNumber = 0; - - /** - * @psalm-param array $warnings - */ - public function __construct(?mysqli_result $result, array $warnings, protected int $fieldsCount) - { - if (null !== $result) { - $this->result = $result->fetch_all(self::MYSQLI_ASSOC); - $result->free(); - } - - $this->warnings = $warnings; - } - - public function getFieldCount(): int - { - return $this->fieldsCount; - } - - /** - * @psalm-return array - */ - public function getWarnings(): array - { - return $this->warnings; - } - - public function setErrorMessage(string $errorMessage): void - { - $this->errorMessage = $errorMessage; - } - - public function setErrorNumber(int $errorNumber): void - { - $this->errorNumber = $errorNumber; - } - - public function getError(): ?string - { - if ($this->result) { - return null; - } - - if ($this->errorNumber > 0 || null !== $this->errorMessage) { - if (null !== $this->errorMessage && '' !== $this->errorMessage) { - return ((string) $this->errorNumber) . ' ' . $this->errorMessage; - } - - // @codeCoverageIgnoreStart - return (string) $this->errorNumber; - // @codeCoverageIgnoreEnd - } - - return null; - } - - public function getResult(): ?array - { - return $this->result; - } -} diff --git a/src/sql/MydbMysqli/MydbMysqliResultInterface.php b/src/sql/MydbMysqli/MydbMysqliResultInterface.php deleted file mode 100644 index f111f1a3be6..00000000000 --- a/src/sql/MydbMysqli/MydbMysqliResultInterface.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql\MydbMysqli; - -use mysqli_result; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * @access protected - */ -interface MydbMysqliResultInterface -{ - /** - * @psalm-param array $warnings - */ - public function __construct(?mysqli_result $result, array $warnings, int $fieldsCount); - - public function getFieldCount(): int; - - /** - * @psalm-return array - */ - public function getWarnings(): array; - - public function setErrorMessage(string $errorMessage): void; - - public function setErrorNumber(int $errorNumber): void; - - public function getError(): ?string; - - public function getResult(): ?array; -} diff --git a/src/sql/MydbMysqliInterface.php b/src/sql/MydbMysqliInterface.php deleted file mode 100644 index 7e4b9fcc425..00000000000 --- a/src/sql/MydbMysqliInterface.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use mysqli; -use mysqli_result; -use sql\MydbMysqli\MydbMysqliEscapeStringInterface; -use sql\MydbMysqli\MydbMysqliResultInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbMysqliInterface extends MydbMysqliEscapeStringInterface -{ - - public function init(): bool; - - public function setTransportOptions(MydbOptionsInterface $options, MydbEnvironmentInterface $environment): bool; - - public function isTransactionOpen(): bool; - - public function setTransactionIsolationLevel(string $level): bool; - - public function isConnected(): bool; - - public function getMysqli(): ?mysqli; - - public function realQuery(string $query): bool; - - public function readServerResponse(MydbEnvironmentInterface $environment): ?MydbMysqliResultInterface; - - public function beginTransactionReadwrite(): bool; - - public function beginTransactionReadonly(): bool; - - public function rollback(): bool; - - public function commitAndRelease(): bool; - - public function commit(): bool; - - public function realConnect( - string $host, - string $username, - string $password, - string $dbname, - ?int $port, - ?string $socket, - int $flags, - ): bool; - - public function mysqliReport(int $level): bool; - - public function close(): bool; - - public function getConnectErrno(): ?int; - - public function getConnectError(): ?string; - - public function isServerGone(): bool; - - public function getError(): ?string; - - public function getErrNo(): ?int; - - public function getAffectedRows(): ?int; - - /** - * @phpcs:disable SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingNativeTypeHint - */ - public function getInsertId(): int|string|null; - - public function autocommit(bool $enable): bool; - - /** - * @param array $events - * @phpcs:disable SlevomatCodingStandard.PHP.DisallowReference.DisallowedPassingByReference - */ - public function extractServerResponse(MydbEnvironmentInterface $environment, array &$events): ?mysqli_result; - - public function getWarnings(): array; -} diff --git a/src/sql/MydbOptions.php b/src/sql/MydbOptions.php deleted file mode 100644 index 27f527592e5..00000000000 --- a/src/sql/MydbOptions.php +++ /dev/null @@ -1,355 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use sql\MydbException\OptionException; -use const E_ALL; -use const E_NOTICE; -use const E_WARNING; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbOptions implements MydbOptionsInterface -{ - protected const NET_CMD_BUFFER_SIZE_MIN = 4096; - - protected const NET_CMD_BUFFER_SIZE_MAX = 16384; - - protected const NET_READ_BUFFER_MIN = 8192; - - protected const NET_READ_BUFFER_MAX = 131072; - - /** - * The execution timeout ONLY APPLIES TO "SELECT" statements, seconds - * X > 0, enabled - * X = 0, not enabled. - * - * @see https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time - */ - protected int $serverSideSelectTimeout = 89; - - /** - * MySql client connection timeout, seconds - */ - protected int $connectTimeout = 5; - - protected int $errorReporting = E_ALL & ~E_WARNING & ~E_NOTICE; - - /** - * The timeout in seconds for each attempt to read from the server. - * @see https://dev.mysql.com/doc/c-api/8.0/en/mysql-options.html - * @see https://github.com/php/php-src/blob/12ab4cbd00e0dae52a5db98dda6da885acb408f6/ - * ext/mysqli/mysqli.c#L654 - * @see https://github.com/php/php-src/blob/a03c1ed7aa2325d91595dcf9371297ab45543517/ - * ext/mysqli/tests/mysqli_constants.phpt#L24 - */ - protected int $readTimeout = 90; - - /** - * Internal network buffer of mysqlnd.net_cmd_buffer_size bytes for every connection - * - * Scope: connection. - * - * Number of network command buffer extensions while sending commands from PHP to MySQL. - * - * mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes - * for every connection. - * If a MySQL Client Server protocol command, for example, COM_QUERY ("normal" query), - * does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command. - * Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one. - * - * If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes - * for almost every connection, you should consider to increase the default size to avoid re-allocations. - * - * The default can set either through the php.ini setting mysqlnd.net_cmd_buffer_size - * or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size). - * - * It is recommended to set the buffer size to no less than 4096 bytes because mysqlnd also uses - * it when reading certain communication packet from MySQL. - * - * As of PHP 5.3.2 mysqlnd does not allow setting buffers smaller than 4096 bytes. - * - * Default 4096 - * - * More memory usage, in exchange for better performance - * @see mysqlnd.net_cmd_buffer_size - * @see http://php.net/manual/en/mysqlnd.config.php - */ - protected int $networkBufferSize = 6144; - - /** - * More memory for better performance - * - * Maximum read chunk size in bytes when reading the body of a MySQL command packet - * The MySQL client server protocol encapsulates all its commands in packets. - * The packets consist of a small header and a body with the actual payload - * - * If a packet body is larger than mysqlnd.net_read_buffer_size bytes, - * mysqlnd has to call read() multiple times - * - * This buffer controls how many bytes mysqlnd fetches from the PHP streams with one call. - * If a result set has less than 32kB in size, mysqlnd will call the PHP streams network - * functions only once, if it is larger more calls are needed - * - * Default 32768 - * - * @see mysqlnd.net_read_buffer_size - * @see http://php.net/manual/en/mysqlnd.config.php - * @see http://blog.ulf-wendel.de/2007/php-mysqlnd-saves-40-memory-finally-new-tuning-options/ - */ - protected int $networkReadBuffer = 49152; - - /** - * Sets mysqli error reporting mode - * - * >=8.1.0 The default value is now MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. - * < 8.1.0 MYSQLI_REPORT_OFF. - * - * MYSQLI_REPORT_OFF Turns reporting off - * MYSQLI_REPORT_ERROR Report errors from mysqli function calls - * MYSQLI_REPORT_STRICT Throw mysqli_sql_exception for errors instead of warnings - * MYSQLI_REPORT_INDEX Report if no index or bad index was used in a query - * MYSQLI_REPORT_ALL Set all options (report all) - * - * @see https://www.php.net/manual/en/function.mysqli-report.php - */ - protected int $clientErrorLevel = MydbMysqli::MYSQLI_REPORT_ALL ^ - MydbMysqli::MYSQLI_REPORT_STRICT ^ - MydbMysqli::MYSQLI_REPORT_INDEX; - - /** - * Transaction isolation is one of the foundations of database processing. - * Isolation is the I in the acronym ACID; the isolation level is the setting that fine-tunes - * the balance between performance and reliability, consistency, and reproducibility of results - * when multiple transactions are making changes and performing queries at the same time. - * - * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html - */ - protected ?string $transactionIsolationLevel = null; - - /** - * Set session time zone - * - * SET time_zone = timezone; - * - * - As the value 'SYSTEM', indicating that the server time zone is the same as the system time zone. - * - As a string, an offset from UTC of the form [H]H:MM, prefixed with a + or -, such as '+10:00', '-6:00' - * Prior to MySQL 8.0.19, this value had to be in the range '-12:59' to '+13:00' - * - As a named time zone, such as 'Europe/Helsinki', 'US/Eastern', 'MET', or 'UTC'. - * - * @see https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html - */ - protected string $timeZone = 'UTC'; - - /** - * The number of seconds the server waits for activity - * on a non-interactive TCP/IP or UNIX File connection before closing it - */ - protected int $nonInteractiveTimeout = 7200; - - /** - * Recommended defaults: - * false for rw connection - * true for ro connection - * true for async connection - */ - protected bool $autocommit = false; - - protected string $charset = 'utf8mb4'; - - /** - * Transaction block will also carry over to the next script - * which uses that connection if script execution ends before the transaction block does - * - * @see http://php.net/manual/en/features.persistent-connections.php - */ - protected bool $persistent = false; - - /** - * Readonly connection - */ - protected bool $readonly = false; - - public function getNonInteractiveTimeout(): int - { - return $this->nonInteractiveTimeout; - } - - public function setNonInteractiveTimeout(int $nonInteractiveTimeout): void - { - $this->nonInteractiveTimeout = $nonInteractiveTimeout; - } - - public function getServerSideSelectTimeout(): int - { - return $this->serverSideSelectTimeout; - } - - public function setServerSideSelectTimeout(int $seconds): void - { - $this->serverSideSelectTimeout = $seconds; - } - - public function getConnectTimeout(): int - { - return $this->connectTimeout; - } - - public function setConnectTimeout(int $seconds): void - { - $this->connectTimeout = $seconds; - } - - public function getErrorReporting(): int - { - return $this->errorReporting; - } - - public function setErrorReporting(int $errorReporting): void - { - $this->errorReporting = $errorReporting; - } - - public function getReadTimeout(): int - { - return $this->readTimeout; - } - - public function setReadTimeout(int $seconds): void - { - $this->readTimeout = $seconds; - } - - public function getNetworkBufferSize(): int - { - return $this->networkBufferSize; - } - - /** - * @param int $bytes bytes - * @throws \sql\MydbException\OptionException - */ - public function setNetworkBufferSize(int $bytes): void - { - if ($bytes < self::NET_CMD_BUFFER_SIZE_MIN || $bytes > self::NET_CMD_BUFFER_SIZE_MAX) { - throw new OptionException(); - } - $this->networkBufferSize = $bytes; - } - - public function getNetworkReadBuffer(): int - { - return $this->networkReadBuffer; - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function setNetworkReadBuffer(int $bytes): void - { - if ($bytes < self::NET_READ_BUFFER_MIN || $bytes > self::NET_READ_BUFFER_MAX) { - throw new OptionException(); - } - $this->networkReadBuffer = $bytes; - } - - public function getClientErrorLevel(): int - { - return $this->clientErrorLevel; - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function setClientErrorLevel(int $mysqliReport): void - { - if ($mysqliReport > 255 || $mysqliReport < 0) { - throw new OptionException(); - } - $this->clientErrorLevel = $mysqliReport; - } - - public function getTimeZone(): string - { - return $this->timeZone; - } - - public function setTimeZone(string $timeZone): void - { - $this->timeZone = $timeZone; - } - - public function isAutocommit(): bool - { - return $this->autocommit; - } - - public function setAutocommit(bool $autocommit): void - { - $this->autocommit = $autocommit; - } - - public function getCharset(): string - { - return $this->charset; - } - - public function setCharset(string $charset): void - { - $this->charset = $charset; - } - - public function isPersistent(): bool - { - return $this->persistent; - } - - public function setPersistent(bool $persistent): void - { - $this->persistent = $persistent; - } - - public function isReadonly(): bool - { - return $this->readonly; - } - - public function setReadonly(bool $readonly): void - { - $this->readonly = $readonly; - } - - public function getTransactionIsolationLevel(): ?string - { - $userLevel = $this->transactionIsolationLevel; - if (null === $userLevel && $this->isReadonly()) { - /** - * Optimal defaults for readonly connection - */ - return self::TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED; - } - - return $userLevel; - } - - public function setTransactionIsolationLevel(string $isolationLevel): void - { - $this->transactionIsolationLevel = $isolationLevel; - } -} diff --git a/src/sql/MydbOptionsInterface.php b/src/sql/MydbOptionsInterface.php deleted file mode 100644 index dc38e4874c9..00000000000 --- a/src/sql/MydbOptionsInterface.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbOptionsInterface -{ - /** - * @see https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html - */ - public const TRANSACTION_ISOLATION_LEVEL_DEFAULT = 'REPEATABLE READ'; - public const TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ = 'REPEATABLE READ'; - public const TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED = 'READ COMMITTED'; - public const TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED = 'READ UNCOMMITTED'; - public const TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE = 'SERIALIZABLE'; - - public function getNonInteractiveTimeout(): int; - - public function setNonInteractiveTimeout(int $nonInteractiveTimeout): void; - - public function getServerSideSelectTimeout(): int; - - public function setServerSideSelectTimeout(int $seconds): void; - - public function getConnectTimeout(): int; - - public function setConnectTimeout(int $seconds): void; - - public function getErrorReporting(): int; - - public function setErrorReporting(int $errorReporting): void; - - public function getReadTimeout(): int; - - public function setReadTimeout(int $seconds): void; - - public function getNetworkBufferSize(): int; - - public function setNetworkBufferSize(int $bytes): void; - - public function getNetworkReadBuffer(): int; - - public function setNetworkReadBuffer(int $bytes): void; - - public function getClientErrorLevel(): int; - - public function setClientErrorLevel(int $mysqliReport): void; - - public function getTimeZone(): string; - - public function setTimeZone(string $timeZone): void; - - public function isAutocommit(): bool; - - public function setAutocommit(bool $autocommit): void; - - public function getCharset(): string; - - public function getTransactionIsolationLevel(): ?string; - - public function setTransactionIsolationLevel(string $isolationLevel): void; - - public function setCharset(string $charset): void; - - public function isPersistent(): bool; - - public function setPersistent(bool $persistent): void; - - public function isReadonly(): bool; - - public function setReadonly(bool $readonly): void; -} diff --git a/src/sql/MydbQueryBuilder.php b/src/sql/MydbQueryBuilder.php deleted file mode 100644 index 66757bc15e6..00000000000 --- a/src/sql/MydbQueryBuilder.php +++ /dev/null @@ -1,400 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use sql\MydbException\QueryBuilderEscapeException; -use sql\MydbException\QueryBuilderException; -use sql\MydbMysqli\MydbMysqliEscapeStringInterface; -use function array_map; -use function count; -use function implode; -use function in_array; -use function is_array; -use function is_float; -use function is_int; -use function is_null; -use function is_object; -use function is_string; -use function is_subclass_of; -use function key; -use function preg_match; -use function sprintf; -use function strlen; -use function strpos; -use function strtoupper; -use function substr; -use function trim; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -class MydbQueryBuilder implements MydbQueryBuilderInterface -{ - - public function __construct(protected MydbMysqliEscapeStringInterface $mysqli) - { - } - - /** - * @throws \sql\MydbException\QueryBuilderException - */ - public function showColumnsLike(string $table, string $column): string - { - if ('' === $table || '' === $column) { - throw new QueryBuilderException(); - } - - return "SHOW COLUMNS FROM " . $this->escape($table, '') . " LIKE " . $this->escape($column); - } - - /** - * @throws \sql\MydbException\QueryBuilderException - */ - public function showKeys(string $table): string - { - if ('' === $table) { - throw new QueryBuilderException(); - } - - return 'SHOW KEYS FROM ' . $this->escape($table, ''); - } - - /** - * @param array $data - * @throws \sql\MydbException\QueryBuilderException - * @psalm-return string - */ - public function insertOne(array $data, string $table, string $type): string - { - if ('' === $table || 0 === count($data)) { - throw new QueryBuilderException(); - } - - $names = $values = []; - - foreach ($data as $name => $value) { - $names[] = $this->escape($name, ""); - $values[] = $this->escape($value); - } - - return sprintf('%s INTO %s (%s) VALUES (%s)', $type, $table, implode(',', $names), implode(',', $values)); - } - - /** - * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] - * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] - * @param string $table 'mytable' - * @throws \sql\MydbException\QueryBuilderException - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh - */ - public function buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string - { - if ('' === $table) { - throw new QueryBuilderException(); - } - - $sql = 'UPDATE ' . $table; - /** - * @phpcs:disable Generic.Files.LineLength.TooLong - * @var array>> $columnSetWhere - */ - foreach ($columnSetWhere as $column => $updateValuesMap) { - /** - * @psalm-suppress DocblockTypeContradiction - */ - if (!is_string($column) || !is_array($updateValuesMap) || 0 === count($updateValuesMap)) { - throw new QueryBuilderException(); - } - /** - * @psalm-suppress InvalidOperand - */ - $sql .= ' SET ' . $column . ' = CASE'; - - foreach ($updateValuesMap as $newValueWhere) { - if (!isset($newValueWhere[0], $newValueWhere[1]) || 2 !== count($newValueWhere)) { - throw new QueryBuilderException(); - } - - $escapedWhereValue = $this->escape($newValueWhere[0]); - $escapedThenValue = $this->escape($newValueWhere[1]); - - /** - * @psalm-suppress InvalidOperand - */ - $sql .= ' WHEN (' . $column . ' = ' . $escapedWhereValue . ')'; - $sql .= ' THEN ' . $escapedThenValue; - } - - /** - * @psalm-suppress InvalidOperand - */ - $sql .= ' ELSE ' . $column; - } - - $sql .= ' END'; - - if (count($where) > 0) { - $sql .= ' ' . $this->buildWhere($where); - } - - return $sql; - } - - /** - * @throws \sql\MydbException\QueryBuilderException - * @param array $update - */ - public function buildUpdateWhere( - array $update, - array $whereFields, - string $table, - array $whereNotFields = [], - ): ?string { - if ('' === $table || [] === $update || is_int(key($update))) { - throw new QueryBuilderException(); - } - - $values = []; - $queryWhere = $this->buildWhere($whereFields, $whereNotFields); - - foreach ($update as $field => $value) { - - /** - * @psalm-suppress RedundantCastGivenDocblockType - */ - $f = (string) $field . ' = ' . $this->escape($value); - $values[] = $f; - } - - $queryUpdate = implode(', ', $values); - - $result = 'UPDATE ' . $table . ' SET ' . $queryUpdate; - if ('' !== $queryWhere) { - $result .= ' ' . $queryWhere; - } - - return $result; - } - - /** - * @throws \sql\MydbException\QueryBuilderException - */ - public function buildDeleteWhere(string $table, array $fields = [], array $negativeFields = []): ?string - { - if ('' === $table || 0 === count($fields) || !is_string(key($fields))) { - throw new QueryBuilderException(); - } - - $queryWhere = $this->buildWhere($fields, $negativeFields); - - /** @lang text */ - return 'DELETE FROM ' . $this->escape($table, '') . ' ' . $queryWhere; - } - - /** - * @throws \sql\MydbException\QueryBuilderException - * @todo will this need real db connection to escape()? add test for all possible cases - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh - */ - public function buildWhere(array $fields, array $negativeFields = [], array $likeFields = []): string - { - if ([] === $fields) { - throw new QueryBuilderException(); - } - - $where = []; - - /** - * @psalm-var float|int|string|array|\sql\MydbExpressionInterface|null $value - */ - foreach ($fields as $field => $value) { - /** - * @psalm-suppress InvalidOperand - */ - $queryPart = (string) $field; - $isNegative = in_array($field, $negativeFields, true); - $inNull = false; - - /** - * @TODO Expression support? - */ - - if (null === $value) { - $queryPart .= ' IS ' . ($isNegative ? 'NOT ' : '') . 'NULL'; - } elseif (is_array($value)) { - $queryPart .= ($isNegative ? ' NOT' : '') . " IN ("; - $inVals = []; - - /** - * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $val - */ - foreach ($value as $val) { - if (null === $val) { - $inNull = true; - } else { - $inValEscaped = $this->escape($val); - $inVals[] = $inValEscaped; - } - } - - $queryPart .= implode(',', $inVals) . ')'; - } else { - $equality = ($isNegative ? '!' : '') . "="; - - if (in_array($field, $likeFields, true)) { - $equality = ($isNegative ? ' NOT ' : ' ') . "LIKE "; - } - - $queryPart .= $equality; - $queryPartEscaped = $this->escape($value); - $queryPart .= $queryPartEscaped; - } - - if ($inNull) { - $queryPart = sprintf( - ' (%s %s %s IS %s) ', - $queryPart, - $isNegative ? 'AND' : 'OR', - $field, - $isNegative ? 'NOT NULL' : 'NULL', - ); - } - - $where[] = $queryPart; - } - - $condition = []; - $condition[] = implode(' AND ', $where); - - return 'WHERE ' . trim(implode(' AND ', $condition)); - } - - /** - * @throws \sql\MydbException\QueryBuilderException - * @see https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html - * @param array $cols - */ - public function buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string - { - if ('' === $table || [] === $data || [] === $cols) { - throw new QueryBuilderException(); - } - - /** - * @phpcs:disable SlevomatCodingStandard.Functions.DisallowArrowFunction - * @throws \sql\MydbException\QueryBuilderException - */ - $mapper = function (array $item): string { - $escapedArgs = implode( - ', ', - /** - * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input - * @throws \sql\MydbException\QueryBuilderException - */ - array_map(function ($input) { - /** - * @psalm-var float|int|string|\sql\MydbExpressionInterface|null $input - * @phan-suppress-next-line PhanThrowTypeAbsentForCall - */ - return $this->escape($input); - }, $item), - ); - - return '(' . $escapedArgs . ')'; - }; - - $values = array_map($mapper, $data); - - $query = "INSERT " . ($ignore ? 'IGNORE ' : '') . "INTO " . $table . " "; - $query .= "(" . implode(', ', $cols) . ") VALUES " . implode(', ', $values); - - if ('' !== $onDuplicate && false === $ignore) { - $query .= ' ON DUPLICATE KEY UPDATE ' . $onDuplicate; - } - - return $query; - } - - /** - * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped - * @SuppressWarnings(PHPMD.NPathComplexity) - * @throws \sql\MydbException\QueryBuilderException - * @todo reduce NPathComplexity - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh - */ - public function escape($unescaped, string $quote = "'"): string - { - if (is_float($unescaped)) { - return (string) $unescaped; - } - - if (is_int($unescaped)) { - return (string) $unescaped; - } - - /** - * Not quoting '0x...' decimal values - */ - if (is_string($unescaped) && 0 === strpos($unescaped, '0x') && preg_match('/^[a-zA-Z0-9]+$/', $unescaped)) { - if (0 === strlen($unescaped) % 2) { - return '0x' . strtoupper(substr($unescaped, 2)); - } - } - - if (is_object($unescaped)) { - /** - * PHP <=7.4 - */ - if ($unescaped instanceof MydbExpressionInterface) { - return (string) $unescaped; - } - - /** - * PHP >=8.0 - * @psalm-suppress ArgumentTypeCoercion - */ - if (is_subclass_of($unescaped, 'Stringable')) { - return (string) $unescaped; - } - } - - if (is_null($unescaped)) { - return '' !== $quote ? $quote . '' . $quote : ''; - } - - /** - * @psalm-suppress RedundantCastGivenDocblockType - */ - if (preg_match('/^(\w)*$/', (string) $unescaped) || preg_match('/^(\w\s)*$/', (string) $unescaped)) { - return '' !== $quote ? $quote . ((string) $unescaped) . $quote : (string) $unescaped; - } - - /** - * @psalm-suppress RedundantCastGivenDocblockType - */ - $result = $this->mysqli->realEscapeString((string) $unescaped); - if (null === $result) { - /** - * @psalm-suppress RedundantCastGivenDocblockType - */ - throw new QueryBuilderException((new QueryBuilderEscapeException((string) $unescaped))->getMessage()); - } - - return '' !== $quote ? $quote . $result . $quote : $result; - } -} diff --git a/src/sql/MydbQueryBuilderInterface.php b/src/sql/MydbQueryBuilderInterface.php deleted file mode 100644 index fafd3b2fbeb..00000000000 --- a/src/sql/MydbQueryBuilderInterface.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - */ -interface MydbQueryBuilderInterface -{ - public const SQL_INSERT = 'INSERT'; - public const SQL_REPLACE = 'REPLACE'; - - public function showColumnsLike(string $table, string $column): string; - - public function showKeys(string $table): string; - - /** - * @param array $data - * @psalm-return string - */ - public function insertOne(array $data, string $table, string $type): string; - - /** - * @param array $columnSetWhere ['col1' => [ ['current1', 'new1'], ['current2', 'new2']] - * @param array $where ['col2' => 'value2', 'col3' => ['v3', 'v4']] - * @param string $table 'mytable' - */ - public function buildUpdateWhereMany(array $columnSetWhere, array $where, string $table): string; - - /** - * @throws \sql\MydbException\QueryBuilderException - * @param array $update - */ - public function buildUpdateWhere( - array $update, - array $whereFields, - string $table, - array $whereNotFields = [], - ): ?string; - - public function buildDeleteWhere(string $table, array $fields = [], array $negativeFields = []): ?string; - - /** - * @throws \sql\MydbException\QueryBuilderException - */ - public function buildWhere(array $fields, array $negativeFields = [], array $likeFields = []): string; - - /** - * @param array $cols - */ - public function buildInsertMany(array $data, array $cols, string $table, bool $ignore, string $onDuplicate): string; - - /** - * @param float|int|string|\sql\MydbExpressionInterface|null $unescaped - * @throws \sql\MydbException\QueryBuilderException - */ - public function escape($unescaped, string $quote = "'"): string; -} diff --git a/src/sql/MydbRegistry.php b/src/sql/MydbRegistry.php deleted file mode 100644 index 49ea1b5efe5..00000000000 --- a/src/sql/MydbRegistry.php +++ /dev/null @@ -1,207 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -use ArrayAccess; -use Countable; -use Iterator; -use Serializable; -use sql\MydbException\RegistryException; -use Traversable; -use function count; -use function current; -use function key; -use function next; -use function reset; -use function serialize; - -/** - * Singleton or registry helper to manage multiple Mydb instances - * - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * @see https://github.com/sshilko/php-sql-mydb - * - * @psalm-suppress MissingTemplateParam - */ -class MydbRegistry implements ArrayAccess, Countable, Traversable, Iterator, Serializable -{ - - /** - * @var array - */ - protected array $instance = []; - - /** - * @throws \sql\MydbException\RegistryException - */ - public function serialize(): ?string - { - throw new RegistryException(); - } - - /** - * @throws \sql\MydbException\RegistryException - * @phpcs:disable SlevomatCodingStandard.Functions.UnusedParameter.UnusedParameter - */ - public function unserialize($data): void - { - throw new RegistryException(serialize($data)); - } - - /** - * Return the current element - */ - public function current(): ?MydbInterface - { - $result = current($this->instance); - if (false === $result) { - return null; - } - - return $result; - } - - /** - * Return the key of the current element - */ - public function key(): ?string - { - $result = key($this->instance); - if (null === $result) { - return null; - } - - return $result; - } - - /** - * Move forward to next element - */ - public function next(): void - { - next($this->instance); - } - - /** - * Rewind the Iterator to the first element - */ - public function rewind(): void - { - reset($this->instance); - } - - /** - * Checks if current position is valid - * @return bool The return value will be boolean and then evaluated. - * Returns true on success or false on failure. - */ - public function valid(): bool - { - return false !== current($this->instance); - } - - public function count(): int - { - return count($this->instance); - } - - /** - * Whether an offset exists - * - * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint - * @param string $offset - * @return bool true on success or false on failure. - */ - public function offsetExists($offset): bool - { - return isset($this->instance[$offset]); - } - - /** - * Offset to retrieve - * - * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint - * @param string $offset - * @throws \sql\MydbException\RegistryException - */ - public function offsetGet($offset): MydbInterface - { - if ($this->offsetExists($offset)) { - return $this->instance[$offset]; - } - - throw new RegistryException(); - } - - /** - * Offset to set - * - * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint - * @param string $offset - * @param \sql\MydbInterface $value - * @throws \sql\MydbException\RegistryException - */ - public function offsetSet($offset, $value): void - { - if ($value instanceof MydbInterface && !$this->offsetExists($offset)) { - $this->instance[$offset] = $value; - - return; - } - - throw new RegistryException(); - } - - /** - * Offset to unset - * - * @phpcs:disable SlevomatCodingStandard.TypeHints.DisallowMixedTypeHint.DisallowedMixedTypeHint - * @param string $offset - */ - public function offsetUnset($offset): void - { - if (!$this->offsetExists($offset)) { - return; - } - - unset($this->instance[$offset]); - } - - /** - * @throws \sql\MydbException\RegistryException - */ - public function __clone() - { - throw new RegistryException(); - } - - /** - * @throws \sql\MydbException\RegistryException - */ - public function __serialize(): array - { - throw new RegistryException(); - } - - /** - * @throws \sql\MydbException\RegistryException - */ - public function __unserialize(array $data): void - { - throw new RegistryException(serialize($data)); - } -} diff --git a/src/sql/MydbRepository.php b/src/sql/MydbRepository.php deleted file mode 100644 index b8cd0df0b52..00000000000 --- a/src/sql/MydbRepository.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -abstract class MydbRepository implements MydbRepositoryInterface -{ - - abstract public function getDatabaseIdentifier(): string; - - public function __construct(private MydbRegistry $registry) - { - } - - public function getDatabase(): MydbInterface - { - return $this->registry[$this->getDatabaseIdentifier()]; - } -} diff --git a/src/sql/MydbRepositoryInterface.php b/src/sql/MydbRepositoryInterface.php deleted file mode 100644 index bedc2da0fa5..00000000000 --- a/src/sql/MydbRepositoryInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace sql; - -interface MydbRepositoryInterface -{ - public function getDatabase(): MydbInterface; -} diff --git a/test/docker-compose.yaml b/test/docker-compose.yaml deleted file mode 100644 index 297dc5ff5b5..00000000000 --- a/test/docker-compose.yaml +++ /dev/null @@ -1,122 +0,0 @@ -# This file is part of the sshilko/php-sql-mydb package. -# -# (c) Sergei Shilko -# -# MIT License -# -# For the full copyright and license information, please view the LICENSE -# file that was distributed with this source code. -# @license https://opensource.org/licenses/mit-license.php MIT -x-mysql: &mysql - platform: linux/amd64 - tty: true - stdin_open: true - dns: 1.1.1.1 - dns_opt: - - use-vc - image: library/mysql:5.7-debian - pull_policy: if_not_present - stop_grace_period: 20s - cpus: 0.95 - cpu_percent: 95 - mem_limit: "150M" - pids_limit: 100 - command: - - --innodb-flush-log-at-trx-commit=2 - - --innodb-flush-neighbors=0 - - --innodb-lock-wait-timeout=10 - - --skip-innodb-adaptive-hash-index - - --innodb-compression-level=0 - - --innodb-fast-shutdown=1 - - --innodb-file-per-table=ON - - --innodb-buffer-pool-size=268435456 - - --innodb-log-buffer-size=16777216 - - --innodb-max-dirty-pages-pct=60 - - --skip-innodb-buffer-pool-dump-at-shutdown - - --innodb-stats-auto-recalc=OFF - - --group-concat-max-len=9223372036854775807 - - --default-authentication-plugin=mysql_native_password - - --skip-character-set-client-handshake - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_general_ci - - --character-set-filesystem=binary - - --disable-log-bin - - --binlog-format=ROW - - --lock-wait-timeout=20 - - --sync-binlog=0 - - --max_allowed_packet=10485760 - - --max-connections=1000 - - --sql-mode=TRADITIONAL - - --skip-performance-schema - - --skip-name-resolve - - --tls-version=TLSv1.2 - healthcheck: - test: ["CMD", "mysqladmin", "-utest", "-ppass", "ping"] - timeout: 1s - interval: 2s - retries: 3 - start_period: 5s - logging: - options: - max-size: "4m" - max-file: "2" - environment: - MYSQL_DATABASE: mydb - MYSQL_USER: test - MYSQL_PASSWORD: pass - MYSQL_ROOT_PASSWORD: root - #MYSQL_INITDB_SKIP_TZINFO: 0 - sysctls: - net.core.somaxconn: 1024 -# tmpfs: -# - /var/lib/mysql/ -# volumes: -# - ./../test/fixtures/mysql/:/docker-entrypoint-initdb.d:ro,cached -# - /tmp/dbdata:/var/lib/mysql/ - ulimits: - nproc: 65535 - nofile: - soft: 262140 - hard: 262140 - restart: on-failure:5 - extra_hosts: - - "host.docker.internal:host-gateway" - -version: '3.7' -services: - #@see https://hub.docker.com/_/mysql - mysql: - <<: *mysql - image: library/mysql:5.7.40-debian - container_name: mysql - expose: - - "3306" - ports: - - "3306:3306/tcp" - volumes: - - ./../test/fixtures/mysql/:/docker-entrypoint-initdb.d:ro - # - ./../test/tmp/mysql-dbdata57:/var/lib/mysql/:rw - - mysql80: - <<: *mysql - image: library/mysql:8.0.30-debian - container_name: mysql80 - expose: - - "4306" - ports: - - "4306:3306/tcp" - volumes: - - ./../test/fixtures/mysql/:/docker-entrypoint-initdb.d:ro - # - ./../test/tmp/mysql-dbdata80:/var/lib/mysql/:rw - - maria10: - <<: *mysql - image: library/mariadb:10.10 - container_name: maria10 - expose: - - "5306" - ports: - - "5306:3306/tcp" - volumes: - - ./../test/fixtures/mysql/:/docker-entrypoint-initdb.d:ro - # - ./../test/tmp/maria-dbdata10:/var/lib/mysql/:rw diff --git a/test/fixtures/mysql/01_db_schema.sql b/test/fixtures/mysql/01_db_schema.sql deleted file mode 100644 index 33abfa2acda..00000000000 --- a/test/fixtures/mysql/01_db_schema.sql +++ /dev/null @@ -1,95 +0,0 @@ --- This file is part of the sshilko/php-sql-mydb package. --- --- (c) Sergei Shilko --- --- MIT License --- --- For the full copyright and license information, please view the LICENSE --- file that was distributed with this source code. --- --- @license https://opensource.org/licenses/mit-license.php MIT - -DROP TABLE IF EXISTS `myusers`; -CREATE TABLE `myusers` -( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 0 - DEFAULT CHARSET = utf8mb4; - -DROP TABLE IF EXISTS `countries`; -CREATE TABLE `countries` -( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `id_region` tinyint(4) NOT NULL DEFAULT '0', - `code` varchar(2) NOT NULL, - `country` varchar(80) NOT NULL, - `remark` text NOT NULL, - `status` text NOT NULL, - `display_name` varchar(80) NOT NULL, - PRIMARY KEY (`id`), - KEY `id_region` (`id_region`), - KEY `code` (`code`) -) ENGINE = InnoDB - AUTO_INCREMENT = 0 - DEFAULT CHARSET = utf8 COMMENT ='http://www.iso.org/iso/iso-3166-1_decoding_table.html'; - -DROP TABLE IF EXISTS `myusers_devices`; -CREATE TABLE `myusers_devices` -( - `id_binary` binary(12) NOT NULL, - `id_user` int(10) unsigned NOT NULL, - `id_reality` tinyint(1) unsigned NOT NULL DEFAULT '1', - `time_saved` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `time_last_update` datetime NOT NULL, - `device_token` varchar(255) CHARACTER SET ascii DEFAULT NULL, - `semver` varchar(9) CHARACTER SET ascii DEFAULT NULL, - `sandbox` tinyint(1) unsigned NOT NULL DEFAULT '0', - `handler` enum ('1','2','3') NOT NULL DEFAULT '1', - `provider` set ('Sansunk','Hookle','Sany') NOT NULL DEFAULT 'Sany', - KEY `id_user` (`id_user`), - KEY `id_reality` (`id_reality`), - KEY `device_token` (`device_token`(5)), - KEY `id_binary` (`id_binary`(6)) -) ENGINE = InnoDB DEFAULT CHARSET = utf8 - PARTITION BY LIST (MOD(id_user, 2)) - SUBPARTITION BY KEY (device_token) - SUBPARTITIONS 2 - (PARTITION p0 VALUES IN (0) ENGINE = InnoDB, - PARTITION p1 VALUES IN (1) ENGINE = InnoDB); - -DROP TABLE IF EXISTS `myusers_languages`; -CREATE TABLE `myusers_languages` -( - `id` tinyint(4) unsigned NOT NULL AUTO_INCREMENT, - `code` char(7) CHARACTER SET ascii DEFAULT NULL, - `language` varchar(64) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 0 - DEFAULT CHARSET = utf8; - -DROP TABLE IF EXISTS `mydecimals`; -CREATE TABLE `mydecimals` ( - `id` int NOT NULL AUTO_INCREMENT, - `cost` decimal(4,2) NOT NULL, - `comment` varchar(6) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB; - -DROP TABLE IF EXISTS `mynames`; -CREATE TABLE `mynames` -( - `name` varchar(10) NOT NULL, - UNIQUE KEY (`name`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; - -DROP TABLE IF EXISTS `mycitynames`; -CREATE TABLE `mycitynames` -( - `city` varchar(10) NOT NULL, - `name` varchar(10) NOT NULL, - PRIMARY KEY (`city`, `name`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; \ No newline at end of file diff --git a/test/fixtures/mysql/02_db_data.sql b/test/fixtures/mysql/02_db_data.sql deleted file mode 100644 index 06f5043ad54..00000000000 --- a/test/fixtures/mysql/02_db_data.sql +++ /dev/null @@ -1,52 +0,0 @@ --- This file is part of the sshilko/php-sql-mydb package. --- --- (c) Sergei Shilko --- --- MIT License --- --- For the full copyright and license information, please view the LICENSE --- file that was distributed with this source code. --- --- @license https://opensource.org/licenses/mit-license.php MIT - -truncate table `countries`; -INSERT INTO `countries` -VALUES (1, 1, 'US', 'UNITED STATES', '', 'officially assigned', 'UNITED STATES'), - (242, 2, 'RU', 'RUSSIAN FEDERATION', '', 'officially assigned', 'RUSSIAN FEDERATION'), - (65, 2, 'DE', 'GERMANY', '', 'officially assigned', 'GERMANY'); - -truncate table `myusers`; -INSERT INTO `myusers` -VALUES (1, 'user1'), - (2, 'user2'), - (3, 'user3'); - -truncate table `myusers_devices`; -INSERT INTO `myusers_devices` (id_binary, id_user, id_reality, time_saved, time_last_update, device_token, semver, sandbox, handler, provider) -VALUES (0x6578, 1, 1, '2011-01-01 00:00:00', '2011-01-02 00:00:00', - 'd3ab006bf3b4583b254370efd1ffe77fd4cace70457a78256d21e84c5df7a5d8', - '1.0.0', - 0, - '1', - 'Sany'), - (0x657861, 1, 1, '2011-01-02 00:00:00', '2011-01-03 00:00:00', - 'd4ab006bf3b4583b254370efd1ffe77fd4cace70457a78256d21e84c5df7a5d8', - '1.0.0', - 1, - '2', - 'Sany'), - (0x6578616d, 1, 1, '2011-01-03 00:00:00', '2011-01-04 00:00:00', - 'aR82sLWgCH8:APA91bF4ieeDMqQaq4O38YszPGlrrmQsc-uDwa4-TeI2TkQVURMsAXw3C-jeEIxQ-_uroAR8zvLHzgCJ9gsYy9FcHe7Uh-NgqHdNgn7_cZ1_Vu9Ne3qL_2z-B8BvfgKHbiieiwtC-ZVi', - '2.2.1', - 0, - '3', - 'Sany'), - (0x6578616d70, 2, 1, '2011-01-04 00:00:00', '2011-01-05 00:00:00', - 'd3ab002bf314585b2543706fd1ffe77fd4cace70457a78256d21e84c5df7a5d8', - '1.0.0', - 0, - '1', - 'Sany'); - -TRUNCATE TABLE `mydecimals`; -INSERT INTO `mydecimals` (id, cost) VALUES (1, 1.1), (2, 1.20), (3, '0.3'); \ No newline at end of file diff --git a/test/phpunit.xml b/test/phpunit.xml deleted file mode 100644 index 018e631fcb5..00000000000 --- a/test/phpunit.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - ./phpunit - - - - - - - - - - - - - - - - ../src - - - - - - - - - - - - - phpunit/base/ - - - - - - - - - - - - - - - - - diff --git a/test/phpunit.xml.badges.php b/test/phpunit.xml.badges.php deleted file mode 100644 index c8e2a1099e2..00000000000 --- a/test/phpunit.xml.badges.php +++ /dev/null @@ -1,51 +0,0 @@ - $label . ' ' . $category, - 'color' => $color, - 'message' => trim($matches[2]), - ] - ); - $remote = $source . $query; - - $file = strtolower(sprintf($output, $category)); - $image = file_get_contents($remote); - $imglen = strlen($image); - if ($imglen > 0) { - file_put_contents($file, $image); - echo 'Saved badge: ' . $file . ' ' . $imglen . " bytes\n"; - } else { - echo 'Failed to fetch badge from ' . $remote . "\n"; - exit(1); - } -} diff --git a/test/phpunit.xml.bootstrap.php b/test/phpunit.xml.bootstrap.php deleted file mode 100644 index 40524af4916..00000000000 --- a/test/phpunit.xml.bootstrap.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -include_once 'vendor/autoload.php'; -foreach (glob(__DIR__ . '/phpunit/includes/*.php') as $filename) { - include_once $filename; -} - -/** - * @phpcs:disable - */ -define("PHPUNIT_MYSQL_MYDB1_HOST", $_ENV['PHPUNIT_MYSQL_MYDB1_HOST'] ?? 'mysql'); \ No newline at end of file diff --git a/test/phpunit/DeleteTest.php b/test/phpunit/DeleteTest.php deleted file mode 100644 index 65cf88d9fc4..00000000000 --- a/test/phpunit/DeleteTest.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\DeleteException; -use sql\MydbMysqli; -use sql\MydbQueryBuilderInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class DeleteTest extends includes\DatabaseTestCase -{ - public function testDelete(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $affected = $db->delete("DELETE FROM myusers WHERE id IN (2,3)"); - self::assertSame(2, $affected); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'user1'], - ]; - self::assertSame($reality, $actual); - - $affected = $db->delete("DELETE FROM myusers WHERE id IN (991, 992)"); - self::assertSame(0, $affected); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testDeleteError(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $sql = "DELETE FROM myusers WHERE id IN (991, 992)"; - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->with($sql)->willReturn(false); - $mysqli->expects(self::never())->method('readServerResponse'); - $result = $db->delete($sql); - - self::assertNull($result); - } - - public function testDeleteInternalError(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $sql = "DELETE FROM myusers WHERE id IN (991, 992)"; - - $r = new MydbMysqli\MydbMysqliResult(null, [], 0); - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->with($sql)->willReturn(true); - $mysqli->expects(self::once())->method('readServerResponse')->willReturn($r); - $mysqli->expects(self::once())->method('getAffectedRows')->willReturn(null); - self::expectException(DeleteException::class); - - $result = $db->delete($sql); - - self::assertNull($result); - } - - public function testDeleteWhere(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $affected = $db->deleteWhere(['id' => [1, 3]], 'myusers', ['id' => [2]]); - self::assertSame(2, $affected); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '2', 'name' => 'user2'], - ]; - self::assertSame($reality, $actual); - - $affected = $db->deleteWhere(['id' => [11, 33]], 'myusers', ['id' => [22]]); - self::assertSame(0, $affected); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testDeleteWhereReturnsNull(): void - { - $builder = $this->createMock(MydbQueryBuilderInterface::class); - - $db = $this->getDefaultDb(null, null, null, $builder); - - $builder->expects(self::once())->method('buildDeleteWhere')->willReturn(null); - self::assertNull($db->deleteWhere([], '')); - } -} diff --git a/test/phpunit/ExceptionTest.php b/test/phpunit/ExceptionTest.php deleted file mode 100644 index e04e148dfcd..00000000000 --- a/test/phpunit/ExceptionTest.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\ConnectException; -use function sprintf; -use function time; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class ExceptionTest extends includes\DatabaseTestCase -{ - public function testTableDoesNotExist(): void - { - $db = $this->getDefaultDb(); - $tableName = 'table' . time(); - $sql = "SELECT * from " . $tableName; - $this->logger - ->expects(self::once()) - ->method('warning') - ->with( - sprintf( - "mysqli::store_result(): (42S02/1146): Table '%s.%s' doesn't exist", - $this->getDbName(), - $tableName - ) - ); - - $this->expectExceptionMessage("1146 Table '" . self::getDbName() . "." . $tableName . "' doesn't exist"); - $db->select($sql); - } - - /** - * @medium - */ - public function testFailedToConnect(): void - { - $db = $this->getNoConnectDb(); - $this->logger->expects(self::once())->method('warning')->with('2002 Connection timed out'); - $result = $db->open(); - self::assertSame(false, $result); - } - - /** - * @medium - */ - public function testFailedToConnectAfterRetry(): void - { - $retry = 1; - $db = $this->getNoConnectDb(); - $this->logger->expects(self::exactly($retry + 1))->method('warning')->with('2002 Connection timed out'); - $result = $db->open($retry); - self::assertSame(false, $result); - } - - /** - * @medium - */ - public function testFailedToConnectLazy(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $this->logger->expects(self::once())->method('warning')->with('2002 Connection timed out'); - $db->select("SELECT 1"); - } - - /** - * @medium - */ - public function testFailedToCommandLazy(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $this->logger->expects(self::once())->method('warning')->with('2002 Connection timed out'); - $db->command("SELECT 1"); - } - - /** - * @medium - */ - public function testFailedToBeginTransaction(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $db->beginTransaction(); - } - - /** - * @medium - */ - public function testFailedToRollbackTransaction(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $db->rollbackTransaction(); - } - - /** - * @medium - */ - public function testFailedToCommitTransaction(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $db->commitTransaction(); - } - - /** - * @medium - */ - public function testFailedToEscapeLazy(): void - { - $db = $this->getNoConnectDb(); - $this->expectException(ConnectException::class); - $this->logger->expects(self::once())->method('warning')->with('2002 Connection timed out'); - $db->escape("hello"); - } - - public function testMySqlWarning(): void - { - $db = $this->getDefaultDb(); - $this->logger->expects(self::once())->method('warning')->with('Division by 0'); - $x = $db->select("select 1/0 as x"); - self::assertSame($x[0]['x'], null); - } - - public function testMySqlError(): void - { - $db = $this->getDefaultDb(); - $random = 'a' . time(); - $this->expectExceptionMessage("Unknown system variable '" . $random . "'"); - $db->select("SELECT @@" . $random); - } -} diff --git a/test/phpunit/InsertTest.php b/test/phpunit/InsertTest.php deleted file mode 100644 index 33f45583fe9..00000000000 --- a/test/phpunit/InsertTest.php +++ /dev/null @@ -1,273 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbExpression; -use sql\MydbMysqli; -use function array_merge; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class InsertTest extends includes\DatabaseTestCase -{ - public function testReplace(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $db->replace("REPLACE INTO myusers (id, name) VALUES (1, 'user11')"); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'user11'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($reality, $actual); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testReplaceOne(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $db->replaceOne(['name' => 'user111', 'id' => 1], 'myusers'); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'user111'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($reality, $actual); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testInsertError(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $sql = "INSERT INTO myusers (id, name) VALUES (9, 'user9')"; - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->with($sql)->willReturn(false); - $mysqli->expects(self::never())->method('readServerResponse'); - $result = $db->replace($sql); - self::assertNull($result); - } - - public function testInsert(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $db->insert("INSERT INTO myusers (id, name) VALUES (9, 'user9')"); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ['id' => '9', 'name' => 'user9'], - ]; - self::assertSame($reality, $actual); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testInsertMany(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($defaults, $actual); - - $db->insertMany( - [ - ['5', 'name5'], - [6, 'name6'], - [new MydbExpression('7'), 'name7'], - ['8', new MydbExpression('888')], - ], - [ - 'id', - 'name', - ], - 'myusers' - ); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ['id' => '5', 'name' => 'name5'], - ['id' => '6', 'name' => 'name6'], - ['id' => '7', 'name' => 'name7'], - ['id' => '8', 'name' => '888'], - ]; - self::assertSame($defaults, $actual); - - $db->insertMany( - [ - ['1', 'user1'], - ], - [ - 'id', - 'name', - ], - 'myusers', - false, - 'id=id+100' - ); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - /** - * duplicate row id=1 is updated to id=101 - */ - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ['id' => '5', 'name' => 'name5'], - ['id' => '6', 'name' => 'name6'], - ['id' => '7', 'name' => 'name7'], - ['id' => '8', 'name' => '888'], - ['id' => '101', 'name' => 'user1'], - ]; - self::assertSame($defaults, $actual); - - - $db->rollbackTransaction(); - $db->close(); - - /** - * Test re-open connection after close, w/o explicit open() - */ - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($defaults, $actual); - $db->close(); - } - - public function testInsertOne(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $db->insertOne(['id' => 7, 'name' => new MydbExpression('666')], 'myusers'); - $db->insertOne(['id' => 8, 'name' => 'user8'], 'myusers'); - - $actual = $db->select("SELECT id, name FROM myusers"); - $expected = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ['id' => '7', 'name' => '666'], - ['id' => '8', 'name' => 'user8'], - ]; - self::assertSame($expected, $actual); - - $actual = $db->select("SELECT id, cost FROM mydecimals"); - $expected = [ - ['id' => '1', 'cost' => '1.10'], - ['id' => '2', 'cost' => '1.20'], - ['id' => '3', 'cost' => '0.30'], - ]; - self::assertSame($expected, $actual); - - $db->insertOne(['id' => 95, 'cost' => 3.21], 'mydecimals'); - $db->insertOne(['id' => 96, 'cost' => 3.2], 'mydecimals'); - $db->insertOne(['id' => 97, 'cost' => '3'], 'mydecimals'); - $db->insertOne(['id' => 98, 'cost' => '3.01'], 'mydecimals'); - $db->insertOne(['id' => 99, 'cost' => '0'], 'mydecimals'); - - $expected = array_merge($expected, [ - ['id' => '95', 'cost' => '3.21'], - ['id' => '96', 'cost' => '3.20'], - ['id' => '97', 'cost' => '3.00'], - ['id' => '98', 'cost' => '3.01'], - ['id' => '99', 'cost' => '0.00'], - ]); - $actual = $db->select("SELECT id, cost FROM mydecimals"); - self::assertSame($expected, $actual); - - $db->rollbackTransaction(); - $db->close(); - } -} diff --git a/test/phpunit/LoggerTest.php b/test/phpunit/LoggerTest.php deleted file mode 100644 index 0d8cbee1926..00000000000 --- a/test/phpunit/LoggerTest.php +++ /dev/null @@ -1,332 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use PHPUnit\Framework\TestCase; -use Psr\Log\LoggerInterface; -use sql\MydbException\LoggerException; -use sql\MydbLogger; -use stdClass; -use function bin2hex; -use function fclose; -use function feof; -use function fgets; -use function fopen; -use function fseek; -use function ftruncate; -use function random_bytes; -use function random_int; -use function rewind; -use function stream_get_contents; -use function var_export; -use const PHP_EOL; -use const SEEK_END; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class LoggerTest extends TestCase -{ - - protected ?LoggerInterface $logger; - - /** - * @var resource|null - */ - protected $stdout = null; - - /** - * @var resource|null - */ - protected $stderr = null; - - private string $stdeol = PHP_EOL; - - public function setUp(): void - { - $stderr = fopen("php://memory", "rw"); - fseek($stderr, 0); - - $stdout = fopen("php://memory", "rw"); - fseek($stdout, 0); - - $this->stderr = $stderr; - $this->stdout = $stdout; - - $this->logger = new MydbLogger($this->stdout, $this->stderr, $this->stdeol); - } - - /** - * @return array> - * @throws \phpunit\Exception - */ - public function dataProviderStrings(): array - { - $eol = $this->stdeol; - $randomString = bin2hex(random_bytes(random_int(2, 20))); - - return [ - 'nothing' => [ - 'message' => '', - 'context' => [], - 'stdout' => '', - 'stderr' => '', - 'isError' => true, - ], - 'nothing-array' => [ - 'message' => [], - 'context' => [], - 'stdout' => '', - 'stderr' => '', - 'isError' => true, - ], - 'nothing-error' => [ - 'message' => '', - 'context' => [], - 'stdout' => '', - 'stderr' => '', - ], - 'something' => [ - 'message' => $randomString, - 'context' => [], - 'stdout' => '', - 'stderr' => $randomString . $eol, - 'isError' => true, - ], - 'something' => [ - 'message' => $randomString, - 'context' => [], - 'stdout' => $randomString . $eol, - 'stderr' => '', - ], - 'chars' => [ - 'message' => '___-123\'\"&*^!@&#${}AXC__DA', - 'context' => [], - 'stdout' => '___-123\'\"&*^!@&#${}AXC__DA' . $eol, - 'stderr' => '', - ], - ]; - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerError(): void - { - $string = 'hello-world'; - $context = ['a' => 'b']; - $this->logger->warning($string, $context); - $buffers = $this->getBuffers(); - - self::assertSame('', $buffers['stdout'], 'STDOUT match'); - - self::assertSame( - $string . $this->stdeol . var_export($context, true) . $this->stdeol, - $buffers['stderr'], - 'STDERR match' - ); - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerConstructorOut(): void - { - $stderr = fopen("php://memory", "rw"); - $stdout = null; - - $this->expectException(LoggerException::class); - new MydbLogger($stdout, $stderr, $this->stdeol); - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerConstructorErr(): void - { - $stderr = null; - $stdout = fopen("php://memory", "rw"); - - - $this->expectException(LoggerException::class); - new MydbLogger($stdout, $stderr, $this->stdeol); - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerStreamErrEnd(): void - { - $stdout = fopen("php://memory", "r"); - $stderr = fopen("/etc/hosts", "r"); - - while (!feof($stderr)) { - fgets($stderr); - } - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - $this->expectException(LoggerException::class); - $logger->warning('hello'); - } - - public function testLoggerStreamOutClosed(): void - { - $stdout = fopen("php://memory", "r"); - $stderr = fopen("php://memory", "r"); - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - fclose($stdout); - - $this->expectException(LoggerException::class); - $logger->info('hello'); - } - - public function testLoggerStreamErrClosed(): void - { - $stdout = fopen("php://memory", "r"); - $stderr = fopen("php://memory", "r"); - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - fclose($stderr); - - $this->expectException(LoggerException::class); - $logger->warning('hello'); - } - - public function testLoggerStreamOutBadMode(): void - { - $stdout = fopen("php://memory", "r"); - $stderr = fopen("php://memory", "rw"); - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - $this->expectException(LoggerException::class); - $logger->info('hello'); - } - - public function testLoggerStreamErrBadMode(): void - { - $stdout = fopen("php://memory", "rw"); - $stderr = fopen("php://memory", "r"); - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - $this->expectException(LoggerException::class); - $logger->warning('hello'); - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerStreamOutEnd(): void - { - $stderr = fopen("php://memory", "r"); - $stdout = fopen("/etc/hosts", "r"); - - while (!feof($stdout)) { - fgets($stdout); - } - - $logger = new MydbLogger($stdout, $stderr, $this->stdeol); - - $this->expectException(LoggerException::class); - $logger->info('hello'); - } - - /** - * @dataProvider dataProviderStrings - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerWithStrings( - $strOrArray, - array $ctx, - string $stdout, - string $stderr, - bool $isError = false, - ): void { - $api = $isError - ? ['warning', 'emergency', 'alert', 'critical'] - : ['debug', 'info', 'notice']; - - foreach ($api as $call) { - $this->logger->$call($strOrArray, $ctx); - $buffers = $this->getBuffers(); - - self::assertSame($stdout, $buffers['stdout'], 'STDOUT match for ' . $call); - self::assertSame($stderr, $buffers['stderr'], 'STDERR match for ' . $call); - } - - $this->logger->log('notice', '', []); - $buffers = $this->getBuffers(); - self::assertSame('', $buffers['stdout'], 'STDOUT match for log'); - self::assertSame('', $buffers['stderr'], 'STDERR match for log'); - - $this->logger->log('notice', 'notice-message', []); - $buffers = $this->getBuffers(); - self::assertSame('notice-message' . $this->stdeol, $buffers['stdout'], 'STDOUT match for log'); - self::assertSame('', $buffers['stderr'], 'STDERR match for log'); - - $this->logger->log('warning', 'warning-message', []); - $buffers = $this->getBuffers(); - self::assertSame('warning-message' . $this->stdeol, $buffers['stdout'], 'STDOUT match for log'); - self::assertSame('', $buffers['stderr'], 'STDERR match for log'); - } - - /** - * @throws \sql\MydbException\LoggerException - */ - public function testLoggerWithContext(): void - { - $context = ['a' => 'b', 'c' => new stdClass(), 'd' => null]; - $this->logger->log('notice', '', $context); - $buffers = $this->getBuffers(); - self::assertSame( - var_export($context, true) . $this->stdeol, - $buffers['stdout'], - 'STDOUT match for log with context' - ); - self::assertSame('', $buffers['stderr'], 'STDERR match for log with context'); - } - - protected function tearDown(): void - { - $this->logger = null; - } - - protected function getBuffers(): array - { - rewind($this->stdout); - $out = stream_get_contents($this->stdout); - fseek($this->stdout, 0, SEEK_END); - ftruncate($this->stdout, 0); - - rewind($this->stderr); - $err = stream_get_contents($this->stderr); - fseek($this->stderr, 0, SEEK_END); - ftruncate($this->stderr, 0); - - return [ - 'stdout' => $out, - 'stderr' => $err, - ]; - } -} diff --git a/test/phpunit/MetaTest.php b/test/phpunit/MetaTest.php deleted file mode 100644 index 8b08afa0451..00000000000 --- a/test/phpunit/MetaTest.php +++ /dev/null @@ -1,674 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException; -use sql\MydbExpression; -use sql\MydbMysqliInterface; -use function explode; -use function str_replace; -use const PHP_MAJOR_VERSION; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class MetaTest extends includes\DatabaseTestCase -{ - public function testOpen(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $actual = $db->select("SELECT 2 as n"); - self::assertSame([['n' => '2']], $actual); - $db->close(); - } - - public function testClose(): void - { - $db = $this->getDefaultDb(); - $actual = $db->select("SELECT 1 as n"); - self::assertSame([['n' => '1']], $actual); - $db->close(); - } - - public function testPrimaryKey(): void - { - $db = $this->getDefaultDb(); - $actual = $db->getPrimaryKeys('myusers'); - self::assertSame(['id'], $actual); - } - - public function testPrimaryKeyNotFound(): void - { - $db = $this->getDefaultDb(); - $actual = $db->getPrimaryKeys('mynames'); - self::assertNull($actual); - } - - public function testPrimaryKeyComposite(): void - { - $db = $this->getDefaultDb(); - $actual = $db->getPrimaryKeys('mycitynames'); - self::assertSame(['city', 'name'], $actual); - } - - public function testEnum(): void - { - $db = $this->getDefaultDb(); - $actual = $db->getEnumValues('myusers_devices', 'handler'); - self::assertSame(['1', '2', '3'], $actual); - } - - public function testSet(): void - { - $db = $this->getDefaultDb(); - $actual = $db->getEnumValues('myusers_devices', 'provider'); - self::assertSame(['Sansunk', 'Hookle', 'Sany'], $actual); - } - - public function testNotRealEnumOrSet(): void - { - $db = $this->getDefaultDb(); - $this->expectException(MydbException::class); - $this->expectExceptionMessage("Column not of type 'enum,set'"); - $db->getEnumValues('myusers_devices', 'id'); - } - - public function testEscape(): void - { - /** - * @see https://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html - * @see https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt - */ - $utf8 = <<<'ENDUTF8' -Original by Markus Kuhn, adapted for HTML by Martin Dürst. - - UTF-8 encoded sample plain-text file -‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ - -Markus Kuhn [ˈmaʳkʊs kuːn] — 1999-08-20 - - -The ASCII compatible UTF-8 encoding of ISO 10646 and Unicode -plain-text files is defined in RFC 2279 and in ISO 10646-1 Annex R. - - - Using Unicode/UTF-8, you can write in emails and source code things such as - -Mathematics and Sciences: - - ∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), - - ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⊥ < a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (A ⇔ B), - - 2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm - -Linguistics and dictionaries: - - ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn - Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ] - -APL: - - ((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈ - -Nicer typography in plain text files: - - ╔══════════════════════════════════════════╗ - ║ ║ - ║ • ‘single’ and “double” quotes ║ - ║ ║ - ║ • Curly apostrophes: “We’ve been here” ║ - ║ ║ - ║ • Latin-1 apostrophe and accents: '´` ║ - ║ ║ - ║ • ‚deutsche‘ „Anführungszeichen“ ║ - ║ ║ - ║ • †, ‡, ‰, •, 3–4, —, −5/+5, ™, … ║ - ║ ║ - ║ • ASCII safety test: 1lI|, 0OD, 8B ║ - ║ ╭─────────╮ ║ - ║ • the euro symbol: │ 14.95 € │ ║ - ║ ╰─────────╯ ║ - ╚══════════════════════════════════════════╝ - -Greek (in Polytonic): - - The Greek anthem: - - Σὲ γνωρίζω ἀπὸ τὴν κόψη - τοῦ σπαθιοῦ τὴν τρομερή, - σὲ γνωρίζω ἀπὸ τὴν ὄψη - ποὺ μὲ βία μετράει τὴ γῆ. - - ᾿Απ᾿ τὰ κόκκαλα βγαλμένη - τῶν ῾Ελλήνων τὰ ἱερά - καὶ σὰν πρῶτα ἀνδρειωμένη - χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά! - - From a speech of Demosthenes in the 4th century BC: - - Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι, - ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς - λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ - τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿ - εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ - πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν - οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι, - οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν - ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον - τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι - γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν - προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους - σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ - τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ - τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς - τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον. - - Δημοσθένους, Γ´ ᾿Ολυνθιακὸς - -Georgian: - - From a Unicode conference invitation: - - გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო - კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს, - ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს - ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი, - ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება - ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში, - ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში. - -Russian: - - From a Unicode conference invitation: - - Зарегистрируйтесь сейчас на Десятую Международную Конференцию по - Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии. - Конференция соберет широкий круг экспертов по вопросам глобального - Интернета и Unicode, локализации и интернационализации, воплощению и - применению Unicode в различных операционных системах и программных - приложениях, шрифтах, верстке и многоязычных компьютерных системах. - -Thai (UCS Level 2): - - Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese - classic 'San Gua'): - - [----------------------------|------------------------] - ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่ - สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา - ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา - โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ - เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ - ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ - พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้ - ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ - - (The above is a two-column text. If combining characters are handled - correctly, the lines of the second column should be aligned with the - | character above.) - -Ethiopian: - - Proverbs in the Amharic language: - - ሰማይ አይታረስ ንጉሥ አይከሰስ። - ብላ ካለኝ እንደአባቴ በቆመጠኝ። - ጌጥ ያለቤቱ ቁምጥና ነው። - ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው። - የአፍ ወለምታ በቅቤ አይታሽም። - አይጥ በበላ ዳዋ ተመታ። - ሲተረጉሙ ይደረግሙ። - ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል። - ድር ቢያብር አንበሳ ያስር። - ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም። - እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም። - የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ። - ሥራ ከመፍታት ልጄን ላፋታት። - ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል። - የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ። - ተንጋሎ ቢተፉ ተመልሶ ባፉ። - ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው። - እግርህን በፍራሽህ ልክ ዘርጋ። - -Runes: - - ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ - - (Old English, which transcribed into Latin reads 'He cwaeth that he - bude thaem lande northweardum with tha Westsae.' and means 'He said - that he lived in the northern land near the Western Sea.') - -Braille: - - ⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌ - - ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞ - ⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎ - ⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂ - ⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙ - ⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑ - ⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲ - - ⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ - - ⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹ - ⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞ - ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕ - ⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹ - ⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎ - ⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎ - ⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳ - ⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞ - ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ - - (The first couple of paragraphs of "A Christmas Carol" by Dickens) - -Compact font selection example text: - - ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789 - abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ - –—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд - ∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა - -Greetings in various languages: - - Hello world, Καλημέρα κόσμε, コンニチハ - -Box drawing alignment tests: █ - ▉ - ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳ - ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳ - ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳ - ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳ - ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎ - ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏ - ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█ - -Here come the tests: | - | -1 Some correct UTF-8 text | - | -You should see the Greek word 'kosme': "κόσμε" | - | -2 Boundary condition test cases | - | -2.1 First possible sequence of a certain length | - | -2.1.1 1 byte (U-00000000): "�" -2.1.2 2 bytes (U-00000080): "€" | -2.1.3 3 bytes (U-00000800): "ࠀ" | -2.1.4 4 bytes (U-00010000): "𐀀" | -2.1.5 5 bytes (U-00200000): "�����" | -2.1.6 6 bytes (U-04000000): "������" | - | -2.2 Last possible sequence of a certain length | - | -2.2.1 1 byte (U-0000007F): "" -2.2.2 2 bytes (U-000007FF): "߿" | -2.2.3 3 bytes (U-0000FFFF): "￿" | -2.2.4 4 bytes (U-001FFFFF): "����" | -2.2.5 5 bytes (U-03FFFFFF): "�����" | -2.2.6 6 bytes (U-7FFFFFFF): "������" | - | -2.3 Other boundary conditions | - | -2.3.1 U-0000D7FF = ed 9f bf = "퟿" | -2.3.2 U-0000E000 = ee 80 80 = "" | -2.3.3 U-0000FFFD = ef bf bd = "�" | -2.3.4 U-0010FFFF = f4 8f bf bf = "􏿿" | -2.3.5 U-00110000 = f4 90 80 80 = "����" | - | -3 Malformed sequences | - | -3.1 Unexpected continuation bytes | - | -Each unexpected continuation byte should be separately signalled as a | -malformed sequence of its own. | - | -3.1.1 First continuation byte 0x80: "�" | -3.1.2 Last continuation byte 0xbf: "�" | - | -3.1.3 2 continuation bytes: "��" | -3.1.4 3 continuation bytes: "���" | -3.1.5 4 continuation bytes: "����" | -3.1.6 5 continuation bytes: "�����" | -3.1.7 6 continuation bytes: "������" | -3.1.8 7 continuation bytes: "�������" | - | -3.1.9 Sequence of all 64 possible continuation bytes (0x80-0xbf): | - | - "���������������� | - ���������������� | - ���������������� | - ����������������" | - | -3.2 Lonely start characters | - | -3.2.1 All 32 first bytes of 2-byte sequences (0xc0-0xdf), | - each followed by a space character: | - | - "� � � � � � � � � � � � � � � � | - � � � � � � � � � � � � � � � � " | - | -3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), | - each followed by a space character: | - | - "� � � � � � � � � � � � � � � � " | - | -3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), | - each followed by a space character: | - | - "� � � � � � � � " | - | -3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), | - each followed by a space character: | - | - "� � � � " | - | -3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), | - each followed by a space character: | - | - "� � " | - | -3.3 Sequences with last continuation byte missing | - | -All bytes of an incomplete sequence should be signalled as a single | -malformed sequence, i.e., you should see only a single replacement | -character in each of the next 10 tests. (Characters as in section 2) | - | -3.3.1 2-byte sequence with last byte missing (U+0000): "�" | -3.3.2 3-byte sequence with last byte missing (U+0000): "��" | -3.3.3 4-byte sequence with last byte missing (U+0000): "���" | -3.3.4 5-byte sequence with last byte missing (U+0000): "����" | -3.3.5 6-byte sequence with last byte missing (U+0000): "�����" | -3.3.6 2-byte sequence with last byte missing (U-000007FF): "�" | -3.3.7 3-byte sequence with last byte missing (U-0000FFFF): "�" | -3.3.8 4-byte sequence with last byte missing (U-001FFFFF): "���" | -3.3.9 5-byte sequence with last byte missing (U-03FFFFFF): "����" | -3.3.10 6-byte sequence with last byte missing (U-7FFFFFFF): "�����" | - | -3.4 Concatenation of incomplete sequences | - | -All the 10 sequences of 3.3 concatenated, you should see 10 malformed | -sequences being signalled: | - | - "�����������������������������" | - | -3.5 Impossible bytes | - | -The following two bytes cannot appear in a correct UTF-8 string | - | -3.5.1 fe = "�" | -3.5.2 ff = "�" | -3.5.3 fe fe ff ff = "����" | - | -4 Overlong sequences | - | -The following sequences are not malformed according to the letter of | -the Unicode 2.0 standard. However, they are longer then necessary and | -a correct UTF-8 encoder is not allowed to produce them. A "safe UTF-8 | -decoder" should reject them just like malformed sequences for two | -reasons: (1) It helps to debug applications if overlong sequences are | -not treated as valid representations of characters, because this helps | -to spot problems more quickly. (2) Overlong sequences provide | -alternative representations of characters, that could maliciously be | -used to bypass filters that check only for ASCII characters. For | -instance, a 2-byte encoded line feed (LF) would not be caught by a | -line counter that counts only 0x0a bytes, but it would still be | -processed as a line feed by an unsafe UTF-8 decoder later in the | -pipeline. From a security point of view, ASCII compatibility of UTF-8 | -sequences means also, that ASCII characters are *only* allowed to be | -represented by ASCII bytes in the range 0x00-0x7f. To ensure this | -aspect of ASCII compatibility, use only "safe UTF-8 decoders" that | -reject overlong UTF-8 sequences for which a shorter encoding exists. | - | -4.1 Examples of an overlong ASCII character | - | -With a safe UTF-8 decoder, all of the following five overlong | -representations of the ASCII character slash ("/") should be rejected | -like a malformed UTF-8 sequence, for instance by substituting it with | -a replacement character. If you see a slash below, you do not have a | -safe UTF-8 decoder! | - | -4.1.1 U+002F = c0 af = "��" | -4.1.2 U+002F = e0 80 af = "���" | -4.1.3 U+002F = f0 80 80 af = "����" | -4.1.4 U+002F = f8 80 80 80 af = "�����" | -4.1.5 U+002F = fc 80 80 80 80 af = "������" | - | -4.2 Maximum overlong sequences | - | -Below you see the highest Unicode value that is still resulting in an | -overlong sequence if represented with the given number of bytes. This | -is a boundary test for safe UTF-8 decoders. All five characters should | -be rejected like malformed UTF-8 sequences. | - | -4.2.1 U-0000007F = c1 bf = "��" | -4.2.2 U-000007FF = e0 9f bf = "���" | -4.2.3 U-0000FFFF = f0 8f bf bf = "����" | -4.2.4 U-001FFFFF = f8 87 bf bf bf = "�����" | -4.2.5 U-03FFFFFF = fc 83 bf bf bf bf = "������" | - | -4.3 Overlong representation of the NUL character | - | -The following five sequences should also be rejected like malformed | -UTF-8 sequences and should not be treated like the ASCII NUL | -character. | - | -4.3.1 U+0000 = c0 80 = "��" | -4.3.2 U+0000 = e0 80 80 = "���" | -4.3.3 U+0000 = f0 80 80 80 = "����" | -4.3.4 U+0000 = f8 80 80 80 80 = "�����" | -4.3.5 U+0000 = fc 80 80 80 80 80 = "������" | - | -5 Illegal code positions | - | -The following UTF-8 sequences should be rejected like malformed | -sequences, because they never represent valid ISO 10646 characters and | -a UTF-8 decoder that accepts them might introduce security problems | -comparable to overlong UTF-8 sequences. | - | -5.1 Single UTF-16 surrogates | - | -5.1.1 U+D800 = ed a0 80 = "���" | -5.1.2 U+DB7F = ed ad bf = "���" | -5.1.3 U+DB80 = ed ae 80 = "���" | -5.1.4 U+DBFF = ed af bf = "���" | -5.1.5 U+DC00 = ed b0 80 = "���" | -5.1.6 U+DF80 = ed be 80 = "���" | -5.1.7 U+DFFF = ed bf bf = "���" | - | -5.2 Paired UTF-16 surrogates | - | -5.2.1 U+D800 U+DC00 = ed a0 80 ed b0 80 = "������" | -5.2.2 U+D800 U+DFFF = ed a0 80 ed bf bf = "������" | -5.2.3 U+DB7F U+DC00 = ed ad bf ed b0 80 = "������" | -5.2.4 U+DB7F U+DFFF = ed ad bf ed bf bf = "������" | -5.2.5 U+DB80 U+DC00 = ed ae 80 ed b0 80 = "������" | -5.2.6 U+DB80 U+DFFF = ed ae 80 ed bf bf = "������" | -5.2.7 U+DBFF U+DC00 = ed af bf ed b0 80 = "������" | -5.2.8 U+DBFF U+DFFF = ed af bf ed bf bf = "������" | - | -5.3 Noncharacter code positions | - | -The following "noncharacters" are "reserved for internal use" by | -applications, and according to older versions of the Unicode Standard | -"should never be interchanged". Unicode Corrigendum #9 dropped the | -latter restriction. Nevertheless, their presence in incoming UTF-8 data | -can remain a potential security risk, depending on what use is made of | -these codes subsequently. Examples of such internal use: | - | - - Some file APIs with 16-bit characters may use the integer value -1 | - = U+FFFF to signal an end-of-file (EOF) or error condition. | - | - - In some UTF-16 receivers, code point U+FFFE might trigger a | - byte-swap operation (to convert between UTF-16LE and UTF-16BE). | - | -With such internal use of noncharacters, it may be desirable and safer | -to block those code points in UTF-8 decoders, as they should never | -occur legitimately in incoming UTF-8 data, and could trigger unsafe | -behaviour in subsequent processing. | - | -Particularly problematic noncharacters in 16-bit applications: | - | -5.3.1 U+FFFE = ef bf be = "￾" | -5.3.2 U+FFFF = ef bf bf = "￿" | - | -Other noncharacters: | - | -5.3.3 U+FDD0 .. U+FDEF = "﷐﷑﷒﷓﷔﷕﷖﷗﷘﷙﷚﷛﷜﷝﷞﷟﷠﷡﷢﷣﷤﷥﷦﷧﷨﷩﷪﷫﷬﷭﷮﷯"| - | -5.3.4 U+nFFFE U+nFFFF (for n = 1..10) | - | - "🿾🿿𯿾𯿿𿿾𿿿񏿾񏿿񟿾񟿿񯿾񯿿񿿾񿿿򏿾򏿿 | - 򟿾򟿿򯿾򯿿򿿾򿿿󏿾󏿿󟿾󟿿󯿾󯿿󿿾󿿿􏿾􏿿" | - | -THE END | -ENDUTF8; - - $input = [ - 'a' => 'a', - '1' => '1', - '1.1' => '1.1', - 2 => '2', - 122 => '122', - 123456789 => '123456789', - '\a' => '\\\a', - "drop \" table" => "drop \\\" table", - "drox \' table" => "drox \\\\\' table", - 'droc " table' => 'droc \" table', - "droe ' table" => "droe \' table", - " Jown's Woo's " => " Jown\'s Woo\'s ", - "x0011" => "x0011", - "\x0011" => "\\011", - "\x1a" => "\\Z", - "\r" => "\\r", - "a\nb" => "a\\nb", - 'NULL' => 'NULL', - 'null' => 'null', - ]; - - $utf8Tests = explode("\n", $utf8); - foreach ($utf8Tests as $t) { - /** - * cleanup quotes - */ - $t = str_replace(["'", '"'], [".", "."], $t); - $input[$t] = $t; - } - - - $db = $this->getDefaultDb(); - $db->open(); - foreach ($input as $in => $expect) { - $actual = $db->escape($in, ''); - self::assertSame($expect, $actual, 'Expected ' . $in . ' to be ' . $expect); - } - - $actual = $db->escape(null); - self::assertSame("''", $actual); - - $actual = $db->escape(new MydbExpression('hello world " unescaped null')); - self::assertSame('hello world " unescaped null', $actual); - - $stringableObject = new class { - /** - * in PHP8 all classes that implement __toString automatically implement Stringable interface - */ - public function __toString(): string - { - return 'NOW(123)'; - } - }; - - $actual = $db->escape($stringableObject); - switch (PHP_MAJOR_VERSION) { - case 7: - self::assertSame("'NOW(123)'", $actual); - - break; - default: - self::assertSame('NOW(123)', $actual); - - break; - } - } - - public function testSingleQuotedEscape(): void - { - $input = [ - 'aaa' => '"aaa"', - 'a b c' => '"a b c"', - 'esca\'pe' => '"esca\\\'pe"', - ]; - - $db = $this->getDefaultDb(); - foreach ($input as $in => $expect) { - $actual = $db->escape($in, '"'); - self::assertSame($expect, $actual); - } - } - - public function testDoubleQuotedEscape(): void - { - $input = [ - 'aaa' => "'aaa'", - 'a b c' => "'a b c'", - 'esca\'pe' => "'esca\\'pe'", - ]; - - $db = $this->getDefaultDb(); - foreach ($input as $in => $expect) { - $actual = $db->escape($in, "'"); - self::assertSame($expect, $actual); - } - } - - public function testPrimaryKeyNotDefined(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $db->command( - "CREATE TABLE `myusers_nopk` ( - `name` varchar(200) NOT NULL - ) ENGINE=InnoDB" - ); - - $pk = $db->getPrimaryKeys('myusers_nopk'); - self::assertNull($pk); - } - - public function testPrimaryKeyQueryFailed(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $mysqli->expects(self::once())->method('realQuery')->willReturn(false); - - $db = $this->getDefaultDb($mysqli); - self::assertTrue($db->open()); - - self::assertNull($db->getPrimaryKeys('randomtablename')); - } -} diff --git a/test/phpunit/MydbEnvironmentTest.php b/test/phpunit/MydbEnvironmentTest.php deleted file mode 100644 index b9b11740897..00000000000 --- a/test/phpunit/MydbEnvironmentTest.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use PHPUnit\Framework\TestCase; -use sql\MydbEnvironment; -use function getmypid; -use function posix_kill; -use const SIGHUP; -use const SIGINT; -use const SIGTERM; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class MydbEnvironmentTest extends TestCase -{ - /** - * @return array> - * @throws \phpunit\Exception - */ - public function dataProviderSignals(): array - { - return [ - 'SIGHUP' => [ - 'signals' => [SIGHUP], - 'expect' => [SIGHUP], - ], - 'SIGTERM' => [ - 'signals' => [SIGTERM], - 'expect' => [SIGTERM], - ], - 'SIGINT' => [ - 'signals' => [SIGINT], - 'expect' => [SIGINT], - ], - 'SIGINT,SIGTERM,SIGHUP' => [ - 'signals' => [SIGINT,SIGHUP,SIGTERM], - 'expect' => [SIGINT,SIGHUP,SIGTERM], - ], - ]; - } - - /** - * @dataProvider dataProviderSignals - * @throws \phpunit\EnvironmentException - */ - public function testSignalSighupTrap(array $signals, array $expect): void - { - $env = new MydbEnvironment(); - $env->startSignalsTrap(); - $pid = getmypid(); - foreach ($signals as $signal) { - posix_kill($pid, $signal); - } - $signals = $env->endSignalsTrap(); - self::assertSame($expect, $signals); - } -} diff --git a/test/phpunit/MydbEventTest.php b/test/phpunit/MydbEventTest.php deleted file mode 100644 index d4780f59560..00000000000 --- a/test/phpunit/MydbEventTest.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use PHPUnit\Framework\TestCase; -use sql\MydbEvent; -use sql\MydbEventMetadataInterface; -use sql\MydbException\EventException; -use sql\MydbListener; -use stdClass; -use function serialize; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class MydbEventTest extends TestCase -{ - public function testMydbEventListenerBreak(): void - { - $class = new class extends MydbEvent { - - public function getEventMetadata(): ?array - { - return []; - } - - protected function getListeners(): array - { - return [new class extends MydbListener { - - protected function onEvent(MydbEventMetadataInterface $event): ?bool - { - serialize($event->getEventMetadata()); - - return false; - } - }]; - } - }; - - self::assertNull((new $class())->notify()); - } - - public function testMydbEventListenerException(): void - { - $class = new class extends MydbEvent { - - public function getEventMetadata(): ?array - { - return []; - } - - protected function getListeners(): array - { - return [new stdClass()]; - } - }; - - $this->expectException(EventException::class); - (new $class())->notify(); - } - - public function testMydbInternalEventSuccess(): void - { - $event = new MydbEvent\InternalEvent(); - self::assertNull($event->getEventMetadata()); - - $listener = new MydbListener\InternalListener(); - self::assertTrue($listener->observe($event)); - } -} diff --git a/test/phpunit/MydbExceptionTest.php b/test/phpunit/MydbExceptionTest.php deleted file mode 100644 index 7b5c4ce2880..00000000000 --- a/test/phpunit/MydbExceptionTest.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use PHPUnit\Framework\TestCase; -use sql\MydbException; -use sql\MydbException\QueryBuilderEscapeException; -use function time; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class MydbExceptionTest extends TestCase -{ - /** - * @throws \sql\MydbException - */ - public function testMyException(): void - { - $message = 'hello world ' . time(); - $exception = new MydbException($message); - $this->expectException(MydbException::class); - $this->expectExceptionMessage($message); - - throw $exception; - } - - /** - * @throws \sql\MydbException - */ - public function testQueryBuilderException(): void - { - $message = 'hello builder ' . time(); - $exception = new QueryBuilderEscapeException($message); - $this->expectException(QueryBuilderEscapeException::class); - $this->expectExceptionMessage("Failed to escape value: " . $message); - - throw $exception; - } -} diff --git a/test/phpunit/MysqliTest.php b/test/phpunit/MysqliTest.php deleted file mode 100644 index 21fd5bb57df..00000000000 --- a/test/phpunit/MysqliTest.php +++ /dev/null @@ -1,153 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbEnvironment; -use sql\MydbMysqli; -use sql\MydbOptions; -use function mysqli_init; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class MysqliTest extends includes\DatabaseTestCase -{ - public function testReuseResource(): void - { - $resource = mysqli_init(); - $mysqli = new MydbMysqli($resource); - $result = $mysqli->init(); - self::assertFalse($result); - } - - public function testGetMysqli(): void - { - $resource = mysqli_init(); - $mysqli = new MydbMysqli($resource); - $result = $mysqli->getMysqli(); - self::assertSame($resource, $result); - } - - /** - * @throws \phpunit\EnvironmentException - */ - public function testOptionsNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->setTransportOptions(new MydbOptions(), new MydbEnvironment()); - self::assertFalse($result); - } - - public function testQueryNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->realQuery('SELECT 1'); - self::assertFalse($result); - } - - public function testReadResponseNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->readServerResponse(new MydbEnvironment()); - self::assertNull($result); - } - - public function testExtractResponseNoInit(): void - { - $mysqli = new MydbMysqli(); - $events = []; - $result = $mysqli->extractServerResponse(new MydbEnvironment(), $events); - self::assertNull($result); - self::assertSame([], $events); - } - - public function testEscapeNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->realEscapeString('hello'); - self::assertNull($result); - } - - public function testTransactionsNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->beginTransactionReadonly(); - self::assertFalse($result); - $result = $mysqli->beginTransactionReadwrite(); - self::assertFalse($result); - $result = $mysqli->rollback(); - self::assertFalse($result); - $result = $mysqli->commitAndRelease(); - self::assertFalse($result); - $result = $mysqli->commit(); - self::assertFalse($result); - $result = $mysqli->autocommit(true); - self::assertFalse($result); - $result = $mysqli->autocommit(false); - self::assertFalse($result); - } - - public function testTransactionsWillFinishWhenForcedAutocommit(): void - { - $mysqli = new MydbMysqli(); - - $db = $this->getDefaultDb($mysqli); - - $result = $mysqli->beginTransactionReadwrite(); - self::assertFalse($result); - - self::assertTrue($db->open()); - - $result = $mysqli->beginTransactionReadwrite(); - self::assertTrue($result); - - self::assertTrue($mysqli->isTransactionOpen()); - - $result = $mysqli->autocommit(true); - self::assertTrue($result); - - self::assertFalse($mysqli->isTransactionOpen()); - - $result = $mysqli->rollback(); - self::assertTrue($result); - - $db->close(); - } - - public function testCloseNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->close(); - self::assertFalse($result); - } - - public function testAffectedRowsNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->getAffectedRows(); - self::assertNull($result); - } - - public function testWarningsNoInit(): void - { - $mysqli = new MydbMysqli(); - $result = $mysqli->getWarnings(); - self::assertSame([], $result); - } -} diff --git a/test/phpunit/OptionsTest.php b/test/phpunit/OptionsTest.php deleted file mode 100644 index 3a3250debd1..00000000000 --- a/test/phpunit/OptionsTest.php +++ /dev/null @@ -1,208 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\OptionException; -use sql\MydbOptions; -use const E_ALL; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class OptionsTest extends includes\DatabaseTestCase -{ - public function testNonInteractiveTimeouts(): void - { - $options = new MydbOptions(); - $options->setNonInteractiveTimeout(10); - self::assertSame(10, $options->getNonInteractiveTimeout()); - } - - public function testTransactionIsolationLevel(): void - { - $options = new MydbOptions(); - - $levels = [ - 'REPEATABLE READ', - 'REPEATABLE READ', - 'READ COMMITTED', - 'READ UNCOMMITTED', - 'SERIALIZABLE', - ]; - - self::assertNull($options->getTransactionIsolationLevel()); - - foreach ($levels as $l) { - $options->setTransactionIsolationLevel($l); - self::assertSame($options->getTransactionIsolationLevel(), $l); - } - } - - public function testServerSideSelectTimeouts(): void - { - $options = new MydbOptions(); - $options->setServerSideSelectTimeout(10); - self::assertSame(10, $options->getServerSideSelectTimeout()); - } - - public function testErrorReporting(): void - { - $options = new MydbOptions(); - $options->setErrorReporting(E_ALL); - self::assertSame(E_ALL, $options->getErrorReporting()); - } - - public function testReadTimeout(): void - { - $options = new MydbOptions(); - $options->setReadTimeout(5); - self::assertSame(5, $options->getReadTimeout()); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testNetworkBuffer(): void - { - $options = new MydbOptions(); - $options->setNetworkBufferSize(4097); - self::assertSame(4097, $options->getNetworkBufferSize()); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testNetworkBufferMin(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setNetworkBufferSize(4095); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testNetworkBufferMax(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setNetworkBufferSize(16385); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testSetReadBuffer(): void - { - $options = new MydbOptions(); - $options->setNetworkReadBuffer(12000); - self::assertSame(12000, $options->getNetworkReadBuffer()); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testSetReadBufferMin(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setNetworkReadBuffer(8191); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testSetReadBufferMax(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setNetworkReadBuffer(131073); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testMysqliReport(): void - { - $options = new MydbOptions(); - $options->setClientErrorLevel(0); - self::assertSame(0, $options->getClientErrorLevel()); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testMysqliReportMin(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setClientErrorLevel(-1); - } - - /** - * @throws \sql\MydbException\OptionException - */ - public function testMysqliReportMax(): void - { - $options = new MydbOptions(); - $this->expectException(OptionException::class); - $options->setClientErrorLevel(256); - } - - public function testSetTimeZone(): void - { - $options = new MydbOptions(); - $options->setTimeZone('Europe/Helsinki'); - self::assertSame('Europe/Helsinki', $options->getTimeZone()); - } - - public function testAutocommit(): void - { - $options = new MydbOptions(); - $options->setAutocommit(true); - self::assertTrue($options->isAutocommit()); - $options->setAutocommit(false); - self::assertFalse($options->isAutocommit()); - } - - public function testCharset(): void - { - $options = new MydbOptions(); - $options->setCharset("utf8mb4"); - self::assertSame('utf8mb4', $options->getCharset()); - } - - public function testPersistent(): void - { - $options = new MydbOptions(); - $options->setPersistent(true); - self::assertTrue($options->isPersistent()); - $options->setPersistent(false); - self::assertFalse($options->isPersistent()); - } - - public function testReadonly(): void - { - $options = new MydbOptions(); - $options->setReadonly(true); - self::assertTrue($options->isReadonly()); - $options->setReadonly(false); - self::assertFalse($options->isReadonly()); - } -} diff --git a/test/phpunit/QueryBuilderTest.php b/test/phpunit/QueryBuilderTest.php deleted file mode 100644 index 35df1bfdf28..00000000000 --- a/test/phpunit/QueryBuilderTest.php +++ /dev/null @@ -1,461 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use PHPUnit\Framework\TestCase; -use sql\MydbException\QueryBuilderException; -use sql\MydbExpression; -use sql\MydbMysqli\MydbMysqliEscapeStringInterface; -use sql\MydbQueryBuilder; -use sql\MydbQueryBuilderInterface; -use Stringable; -use function array_merge; -use function str_replace; -use const PHP_MAJOR_VERSION; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class QueryBuilderTest extends TestCase -{ - - private MydbMysqliEscapeStringInterface $esc; - - private MydbQueryBuilderInterface $builder; - - public function setUp(): void - { - $this->esc = $this->createMock(MydbMysqliEscapeStringInterface::class); - $this->esc->method('realEscapeString')->willReturnCallback( - static function ($arg1) { - /** - * Not testing escape logic here - */ - return $arg1; - } - ); - $this->builder = new MydbQueryBuilder($this->esc); - } - - public function testShowColumnsLike(): void - { - $sql = $this->builder->showColumnsLike('table1', 'column1'); - self::assertSame("SHOW COLUMNS FROM table1 LIKE 'column1'", $sql); - - $sql = $this->builder->showColumnsLike('db1.table1', 'table2.column3'); - self::assertSame("SHOW COLUMNS FROM db1.table1 LIKE 'table2.column3'", $sql); - - self::expectException(QueryBuilderException::class); - $this->builder->showColumnsLike('', 'table2.column3'); - - self::expectException(QueryBuilderException::class); - $this->builder->showColumnsLike('db1.table1', ''); - } - - public function testShowKeys(): void - { - $sql = $this->builder->showKeys('table1'); - self::assertSame('SHOW KEYS FROM table1', $sql); - - $sql = $this->builder->showKeys('db1.table2'); - self::assertSame('SHOW KEYS FROM db1.table2', $sql); - - self::expectException(QueryBuilderException::class); - $this->builder->showKeys(''); - } - - /** - * @dataProvider dataProviderTestInsertOne - */ - public function testInsertOne(string $sql, string $table, $data): void - { - $real = $this->builder->insertOne($data, $table, 'INSERT'); - self::assertSame($sql, $real); - - self::expectException(QueryBuilderException::class); - $this->builder->insertOne($data, '', 'INSERT'); - } - - public function testInsertReplaceOneException(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->insertOne(['a'], '', 'INSERT'); - - self::expectException(QueryBuilderException::class); - $this->builder->insertOne([], 'db1.table1', 'INSERT'); - - self::expectException(QueryBuilderException::class); - $this->builder->insertOne(['a'], '', 'REPLACE'); - - self::expectException(QueryBuilderException::class); - $this->builder->insertOne([], 'db1.table1', 'REPLACE'); - } - - /** - * @dataProvider dataProviderTestInsertOne - */ - public function testReplaceOne(string $sql, string $table, $data): void - { - $real = $this->builder->insertOne($data, $table, 'REPLACE'); - $sql = str_replace('INSERT ', 'REPLACE ', $sql); - self::assertSame($sql, $real); - } - - public function testEscape(): void - { - $esc = $this->createMock(MydbMysqliEscapeStringInterface::class); - $builder = new MydbQueryBuilder($esc); - - $esc->expects(self::once())->method('realEscapeString')->willReturn(null); - self::expectException(QueryBuilderException::class); - self::expectExceptionMessage('Failed to escape value: a $ b'); - $builder->escape('a $ b'); - } - - /** - * @dataProvider dataProviderTestBuildUpdateWhereMany - */ - public function testBuildUpdateWhereMany(string $sql, array $columnSetWhere, array $where, string $table): void - { - $real = $this->builder->buildUpdateWhereMany($columnSetWhere, $where, $table); - self::assertSame($sql, $real); - } - - /** - * @dataProvider dataProviderTestBuildWhere - */ - public function testBuildWhere($sql, array $fields, array $negativeFields, array $likeFields): void - { - $real = $this->builder->buildWhere($fields, $negativeFields, $likeFields); - self::assertSame($sql, $real); - } - - public function testBuildWhereException(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildWhere([], []); - } - - public function testBuildInsertManyException(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildInsertMany(['a' => 'b'], ['c'], '', false, ''); - - self::expectException(QueryBuilderException::class); - $this->builder->buildInsertMany(['a' => 'b'], [], 'table', false, ''); - - self::expectException(QueryBuilderException::class); - $this->builder->buildInsertMany([], ['c'], 'table', false, ''); - - self::expectException(QueryBuilderException::class); - $this->builder->buildInsertMany([], [1 => '2'], 'table', false, ''); - } - - public function testBuildUpdateWhereManyException1(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany([], [], ''); - } - - public function testBuildUpdateWhereManyException2(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => 'b'], [], 'table1'); - } - - public function testBuildUpdateWhereManyException3(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => []], [], 'table1'); - } - - public function testBuildUpdateWhereManyException4(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => ['a' => ['c']]], [], 'table1'); - } - - public function testBuildUpdateWhereManyException5(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => ['a' => ['c', 'd', 'e']]], [], 'table1'); - } - - public function testBuildUpdateWhereManyException6(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => ['a' => [null, 'd', 'e']]], [], 'table1'); - } - - public function testBuildUpdateWhereManyException7(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhereMany(['a' => ['a' => ['c', null,]]], [], 'table1'); - } - - /** - * @return array> - * @phpcs:disable Generic.Files.LineLength.TooLong - */ - public function dataProviderTestBuildUpdateWhereMany(): array - { - return [ - 'simple' => [ - 'sql' => "UPDATE table1 SET id = CASE WHEN (id = '1') THEN 2 WHEN (id = 3.3) THEN '4' ELSE id SET name = CASE WHEN (name = 'oldname') THEN NOW() ELSE name END WHERE xxx='yyy'", - 'columnSetWhere' => [ - 'id' => [ - ['1', 2], - [3.30, '4'], - ], - 'name' => [ - ['oldname', new MydbExpression('NOW()')], - ], - ], - 'where' => ['xxx' => 'yyy'], - 'table' => 'table1', - ], - 'prefixed simple' => [ - 'sql' => "UPDATE db1.table1 SET table1.id = CASE WHEN (table1.id = '1') THEN 2 WHEN (table1.id = 3) THEN '4' ELSE table1.id SET table1.name = CASE WHEN (table1.name = 'oldname') THEN NOW() ELSE table1.name END WHERE table1.xxx='yyy'", - 'columnSetWhere' => [ - 'table1.id' => [ - ['1', 2], - [3, '4'], - ], - 'table1.name' => [ - ['oldname', new MydbExpression('NOW()')], - ], - ], - 'where' => ['table1.xxx' => 'yyy'], - 'table' => 'db1.table1', - ], - ]; - } - - /** - * @return array> - * @phpcs:disable Generic.Files.LineLength.TooLong - * @phpcs:disable SlevomatCodingStandard.Complexity.Cognitive.ComplexityTooHigh - */ - public function dataProviderTestBuildWhere(): array - { - $simples = [ - 'simple' => [ - 'sql' => "WHERE id=1", - 'fields' => ['id' => 1], - 'negativeFields' => [], - 'likeFields' => [], - ], - 'expression' => [ - 'sql' => "WHERE id=NOW()", - 'fields' => ['id' => new MydbExpression('NOW()')], - 'negativeFields' => [], - 'likeFields' => [], - ], - ]; - - if (PHP_MAJOR_VERSION > 7) { - $simples['expression8'] = [ - 'sql' => "WHERE id=HELLOWORLD()", - 'fields' => ['id' => new class() implements Stringable{ - public function __toString(): string - { - return 'HELLOWORLD()'; - } - }], - 'negativeFields' => [], - 'likeFields' => [], - ]; - } - - $nullTests = [ - 'simple array count >1' => [ - 'sql' => "WHERE id IN ('a','b','c')", - 'fields' => ['id' => ['a', 'b', 'c']], - 'negativeFields' => [], - 'likeFields' => [], - ], - 'negative array count >1' => [ - 'sql' => "WHERE id NOT IN ('a','b','c')", - 'fields' => ['id' => ['a', 'b', 'c']], - 'negativeFields' => ['id'], - 'likeFields' => [], - ], - 'simple null array count >1' => [ - 'sql' => "WHERE (id IN ('a','b') OR id IS NULL)", - 'fields' => ['id' => ['a', 'b', null]], - 'negativeFields' => [], - 'likeFields' => [], - ], - 'negative null array count >1' => [ - 'sql' => "WHERE (id NOT IN ('a','b') AND id IS NOT NULL)", - 'fields' => ['id' => ['a', 'b', null]], - 'negativeFields' => ['id'], - 'likeFields' => [], - ], - 'simple array count 1' => [ - 'sql' => "WHERE id IN ('abcd')", - 'fields' => ['id' => ['abcd']], - 'negativeFields' => [], - 'likeFields' => [], - ], - 'negative array count 1' => [ - 'sql' => "WHERE id NOT IN ('abcd')", - 'fields' => ['id' => ['abcd']], - 'negativeFields' => ['id'], - 'likeFields' => [], - ], - 'simple null' => [ - 'sql' => "WHERE id IS NULL", - 'fields' => ['id' => null], - 'negativeFields' => [], - 'likeFields' => [], - ], - 'negative null' => [ - 'sql' => "WHERE id IS NOT NULL", - 'fields' => ['id' => null], - 'negativeFields' => ['id'], - 'likeFields' => [], - ], - 'like null' => [ - 'sql' => "WHERE id IS NULL", - 'fields' => ['id' => null], - 'negativeFields' => [], - 'likeFields' => ['id'], - ], - ]; - - $result = array_merge($simples, $nullTests); - foreach (["'1a'" => '1a', 2 => 2, '2.5' => 2.5] as $where => $simpleTypes) { - foreach ($simples as $stest) { - $stest['fields']['id'] = $simpleTypes; - foreach ([true, false] as $negative) { - $stest['negativeFields'] = $negative ? ['id'] : []; - foreach ([true, false] as $like) { - if (false === $like) { - $stest['sql'] = "WHERE id" . ($negative ? '!=' : '=') . $where; - } else { - $stest['sql'] = "WHERE id" . ($negative ? ' NOT LIKE ' : ' LIKE ') . $where; - } - $stest['likeFields'] = $like ? ['id'] : []; - $result[] = $stest; - } - } - } - } - - return $result; - } - - public function testbuildDeleteWhereExceptions(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildDeleteWhere('', ['a' => 'b']); - - self::expectException(QueryBuilderException::class); - $this->builder->buildDeleteWhere('table1', ['a']); - - self::expectException(QueryBuilderException::class); - $this->builder->buildDeleteWhere('table1', []); - } - - public function testBuildUpdateWhereExceptions1(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhere(['a'], [], 'table'); - } - - public function testBuildUpdateWhereExceptions2(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhere([1 => 'a'], [], 'table'); - } - - public function testBuildUpdateWhereExceptions3(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhere(['a' => 'b'], [], 'table'); - } - - public function testBuildUpdateWhereExceptions4(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhere(['a' => 'b'], [], ''); - } - - public function testBuildUpdateWhereExceptions5(): void - { - self::expectException(QueryBuilderException::class); - $this->builder->buildUpdateWhere([], [], 'table'); - } - - /** - * @return array> - */ - public function dataProviderTestInsertOne(): array - { - return [ - 'simple int' => [ - 'sql' => "INSERT INTO hello1 (id,name) VALUES (1,'user1')", - 'table' => 'hello1', - 'data' => ['id' => 1, 'name' => 'user1'], - ], - 'simple float' => [ - 'sql' => "INSERT INTO hello2 (id,name) VALUES (1.5,'user1')", - 'table' => 'hello2', - 'data' => ['id' => 1.5, 'name' => 'user1'], - ], - 'expression' => [ - 'sql' => "INSERT INTO hello3 (id,name) VALUES (2,NOW())", - 'table' => 'hello3', - 'data' => ['id' => 2, 'name' => new MydbExpression('NOW()')], - ], - 'raw null' => [ - 'sql' => "INSERT INTO hello4 (id,name) VALUES (3,'')", - 'table' => 'hello4', - 'data' => ['id' => 3, 'name' => null], - ], - 'string caps null' => [ - 'sql' => "INSERT INTO hello5 (id,name) VALUES (5,'NULL')", - 'table' => 'hello5', - 'data' => ['id' => 5, 'name' => 'NULL'], - ], - 'string lowercase null' => [ - 'sql' => "INSERT INTO hello6 (id,name) VALUES (6,'null')", - 'table' => 'hello6', - 'data' => ['id' => 6, 'name' => 'null'], - ], - 'string 0x' => [ - 'sql' => "INSERT INTO hello7 (id,name) VALUES (6,0xAABBCC)", - 'table' => 'hello7', - 'data' => ['id' => 6, 'name' => '0xAAbbCc'], - ], - 'string 0x even' => [ - 'sql' => "INSERT INTO hello7 (id,name) VALUES (6,'0xAAbbC')", - 'table' => 'hello7', - 'data' => ['id' => 6, 'name' => '0xAAbbC'], - ], - 'string 0x mismatch' => [ - 'sql' => "INSERT INTO hello7 (id,name) VALUES (6,'0xAA-.%bbC')", - 'table' => 'hello7', - 'data' => ['id' => 6, 'name' => '0xAA-.%bbC'], - ], - ]; - } -} diff --git a/test/phpunit/RegistryTest.php b/test/phpunit/RegistryTest.php deleted file mode 100644 index 9a2cab4dc52..00000000000 --- a/test/phpunit/RegistryTest.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\RegistryException; -use sql\MydbRegistry; -use function serialize; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class RegistryTest extends includes\DatabaseTestCase -{ - public function testRegistryEmpty1(): void - { - $registry = new MydbRegistry(); - self::assertNull($registry->current()); - } - - public function testRegistryEmpty2(): void - { - $registry = new MydbRegistry(); - self::assertNull($registry->key()); - } - - public function testRegistryEmpty3(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - $registry->offsetGet('a'); - } - - public function testRegistrySet(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - $registry->offsetSet('a', 'b'); - } - - public function testRegistryUnSet1(): void - { - $registry = new MydbRegistry(); - $result = $registry->offsetUnset('abcdefg'); - self::assertSame(null, $result); - } - - public function testRegistryUnSet2(): void - { - $registry = new MydbRegistry(); - $registry->offsetSet('a', $this->getDefaultDb()); - $registry->offsetUnset('a'); - self::expectNotToPerformAssertions(); - } - - public function testRegistrySerialize1(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - serialize($registry); - } - - public function testRegistrySerialize2(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - $registry->serialize(); - } - - public function testRegistryUnserialize1(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - $registry->unserialize('hello'); - } - - public function testRegistryUnserialize2(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - $registry->__unserialize(['a']); - } - - public function testRegistryClone(): void - { - $registry = new MydbRegistry(); - $this->expectException(RegistryException::class); - clone $registry; - } -} diff --git a/test/phpunit/RepositoryTest.php b/test/phpunit/RepositoryTest.php deleted file mode 100644 index 07a46a7d301..00000000000 --- a/test/phpunit/RepositoryTest.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbRegistry; -use sql\MydbRepository; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class RepositoryTest extends includes\DatabaseTestCase -{ - public function testRegistry(): void - { - $registry = new MydbRegistry(); - $registry['db1'] = $this->getDefaultDb(); - - $repository = new class($registry) extends MydbRepository { - public function getDatabaseIdentifier(): string - { - return 'db1'; - } - }; - - self::assertSame($registry['db1'], $repository->getDatabase()); - self::assertSame('db1', $repository->getDatabaseIdentifier()); - } -} diff --git a/test/phpunit/ResourceTest.php b/test/phpunit/ResourceTest.php deleted file mode 100644 index 68df6fb3ac8..00000000000 --- a/test/phpunit/ResourceTest.php +++ /dev/null @@ -1,389 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use RuntimeException; -use sql\MydbEnvironment; -use sql\MydbException; -use sql\MydbException\ConnectDefaultsException; -use sql\MydbException\DisconnectException; -use sql\MydbMysqli; -use sql\MydbMysqliInterface; -use sql\MydbOptions; -use function random_int; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class ResourceTest extends includes\DatabaseTestCase -{ - public function testOpen(): void - { - $db = $this->getDefaultDb(); - self::assertTrue($db->open()); - } - - public function testOpenCloseError(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $mysqli->expects(self::once())->method('init')->willReturn(false); - $mysqli->expects(self::once())->method('close')->willReturn(false); - - self::expectException(DisconnectException::class); - $db->open(); - } - - public function testOpenAutocommitFailed(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $mysqli->expects(self::once())->method('init')->willReturn(true); - $mysqli->expects(self::once())->method('setTransportOptions')->willReturn(true); - $mysqli->expects(self::once())->method('realConnect')->willReturn(true); - $mysqli->expects(self::once())->method('mysqliReport'); - $mysqli->expects(self::once())->method('autocommit')->willReturn(false); - - self::expectException(MydbException\TransactionAutocommitException::class); - $db->open(); - } - - public function testSimpleClose(): void - { - $db = $this->getDefaultDb(); - self::assertNull($db->close()); - } - - public function testCloseNotConnected(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $db->close(); - } - - public function testWillCommitNotPersistentTransactionWhenNoAutocommitAndNoTransactionOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->method('isConnected')->willReturn(true); - - $options->method('isAutocommit')->willReturn(false); - $mysqli->method('isTransactionOpen')->willReturn(false); - - $options->method('isPersistent')->willReturn(false); - - $mysqli->expects(self::once())->method('commitAndRelease')->willReturn(true); - $mysqli->method('close')->willReturn(true); - $envs->expects(self::once())->method('gc_collect_cycles'); - $db->close(); - } - - public function testWillCommitIsPersistentTransactionWhenNoAutocommitAndNoTransactionOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isAutocommit')->willReturn(false); - $mysqli->method('isTransactionOpen')->willReturn(false); - $options->method('isPersistent')->willReturn(true); - $mysqli->expects(self::once())->method('commit')->willReturn(true); - $mysqli->method('close')->willReturn(true); - $envs->expects(self::once())->method('gc_collect_cycles'); - $db->close(); - } - - public function testTransactionExceptionOnPersistentClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(true); - - $options->expects(self::once())->method('isAutocommit')->willReturn(false); - $mysqli->expects(self::once())->method('isTransactionOpen')->willReturn(false); - $options->expects(self::once())->method('isPersistent')->willReturn(true); - $mysqli->expects(self::once())->method('commit')->willReturn(false); - $mysqli->expects(self::never())->method('commitAndRelease'); - - $this->expectException(MydbException\TransactionCommitException::class); - $db->close(); - } - - public function testTransactionExceptionOnNonPersistentClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(true); - - $options->expects(self::once())->method('isAutocommit')->willReturn(false); - $mysqli->expects(self::once())->method('isTransactionOpen')->willReturn(false); - $options->expects(self::once())->method('isPersistent')->willReturn(false); - $mysqli->expects(self::never())->method('commit'); - $mysqli->expects(self::once())->method('commitAndRelease')->willReturn(false); - - $this->expectException(MydbException\TransactionCommitException::class); - $db->close(); - } - - public function testDisconnectExceptionOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(true); - - $options->expects(self::once())->method('isAutocommit')->willReturn(true); - - $mysqli->expects(self::once())->method('close')->willReturn(false); - $this->expectException(MydbException\DisconnectException::class); - $db->close(); - } - - public function testUncaughtExceptionBecomesInternalExceptionOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(true); - - $options->expects(self::once())->method('isAutocommit')->willReturn(true); - - $mysqli->expects(self::once())->method('close')->willThrowException(new RuntimeException('ho-ho')); - $this->expectException(MydbException\InternalException::class); - $db->close(); - } - - public function testNoGcWhenNotConnected(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, null, $envs); - $mysqli->method('isConnected')->willReturn(false); - $envs->expects(self::never())->method('gc_collect_cycles'); - $db->close(); - } - - public function testGcWhenConnected(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, null, $envs); - - $mysqli->method('isConnected')->willReturn(true); - $mysqli->method('commitAndRelease')->willReturn(true); - - $mysqli->method('close')->willReturn(true); - - $mysqli->method('isConnected')->willReturn(false); - $envs->expects(self::once())->method('gc_collect_cycles'); - $db->close(); - } - - public function testDoNoCommitTransactionWhenAutocommitEnabledOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isAutocommit')->willReturn(true); - $mysqli->method('isTransactionOpen')->willReturn(false); - $options->method('isPersistent')->willReturn(true); - $mysqli->expects(self::never())->method('commit'); - $mysqli->method('close')->willReturn(true); - $db->close(); - } - - public function testDoNoCommitTransactionWhenTransactionExplicitlyStartedOnClose(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isAutocommit')->willReturn(false); - $mysqli->method('isTransactionOpen')->willReturn(true); - $mysqli->expects(self::never())->method('commit'); - $mysqli->method('close')->willReturn(true); - $db->close(); - } - - public function testQueryBadClientRequest(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $mysqli->expects(self::once())->method('realQuery')->willReturn(false); - - $db = $this->getDefaultDb($mysqli); - self::assertTrue($db->open()); - - self::assertNull($db->query('SELECT 1')); - } - - public function testQueryBadServerResponse(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $mysqli->expects(self::once())->method('realQuery')->willReturn(true); - $mysqli->expects(self::once())->method('readServerResponse')->willReturn(null); - - $db = $this->getDefaultDb($mysqli); - self::assertTrue($db->open()); - - self::assertNull($db->query('SELECT 1')); - } - - public function testQueryBadServerResponsePacketFieldCountIsZero(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $packet = $this->createMock(MydbMysqli\MydbMysqliResultInterface::class); - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $mysqli->expects(self::once())->method('realQuery')->willReturn(true); - $mysqli->expects(self::once())->method('readServerResponse')->willReturn($packet); - - $packet->expects(self::once())->method('getFieldCount')->willReturn(0); - $packet->expects(self::never())->method('getResult'); - - $db = $this->getDefaultDb($mysqli); - self::assertTrue($db->open()); - - self::assertNull($db->query('SELECT 1')); - } - - public function testQueryBadServerResponsePacketFieldCountIsNotZeroButBadResult(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $packet = $this->createMock(MydbMysqli\MydbMysqliResultInterface::class); - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $mysqli->expects(self::once())->method('realQuery')->willReturn(true); - $mysqli->expects(self::once())->method('readServerResponse')->willReturn($packet); - - $packet->expects(self::once())->method('getFieldCount')->willReturn(random_int(1, 99)); - $packet->expects(self::once())->method('getResult')->willReturn(null); - - $db = $this->getDefaultDb($mysqli); - self::assertTrue($db->open()); - - $this->expectException(MydbException\InternalException::class); - self::assertNull($db->query('SELECT 1')); - } - - public function testConnectingDefaultsFailed(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $mysqli->expects(self::once())->method('init')->willReturn(true); - $mysqli->expects(self::once())->method('setTransportOptions')->willReturn(true); - $mysqli->expects(self::once())->method('realConnect')->willReturn(true); - $mysqli->expects(self::once())->method('autocommit')->willReturn(true); - - $options->expects(self::once())->method('getTimeZone')->willReturn('UTC123'); - $options->expects(self::once())->method('getNonInteractiveTimeout')->willReturn(123); - $options->expects(self::once())->method('getCharset')->willReturn('ascii56'); - - $mysqli->expects(self::once())->method('realQuery') - ->with("SET time_zone = 'UTC123', wait_timeout = 123, names 'ascii56'")->willReturn(false); - - $this->expectException(ConnectDefaultsException::class); - - $db->open(); - } - - public function testConnectingTransactionIsolationFailed(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $mysqli->expects(self::once())->method('init')->willReturn(true); - $mysqli->expects(self::once())->method('setTransportOptions')->willReturn(true); - $mysqli->expects(self::once())->method('realConnect')->willReturn(true); - $mysqli->expects(self::once())->method('autocommit')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->willReturn(true); - - $options->expects(self::once())->method('getTransactionIsolationLevel')->willReturn('yes123'); - $mysqli->expects(self::once())->method('setTransactionIsolationLevel')->with('yes123')->willReturn(false); - - $this->expectException(MydbException\TransactionIsolationException::class); - - $db->open(); - } - - public function testConnectingTransactionAutocommitFailed(): void - { - $mysqli = $this->createMock(MydbMysqliInterface::class); - $options = $this->createMock(MydbOptions::class); - $envs = $this->createMock(MydbEnvironment::class); - - $db = $this->getDefaultDb($mysqli, $options, $envs); - - $mysqli->expects(self::once())->method('isConnected')->willReturn(false); - $mysqli->expects(self::once())->method('init')->willReturn(true); - $mysqli->expects(self::once())->method('setTransportOptions')->willReturn(true); - $mysqli->expects(self::once())->method('realConnect')->willReturn(true); - $mysqli->expects(self::once())->method('autocommit')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->willReturn(true); - - $options->expects(self::once())->method('getTransactionIsolationLevel'); - $mysqli->expects(self::never())->method('setTransactionIsolationLevel'); - - $options->expects(self::once())->method('isReadonly')->willReturn(true); - $mysqli->expects(self::once())->method('beginTransactionReadonly')->willReturn(false); - - $this->expectException(MydbException\TransactionAutocommitException::class); - - $db->open(); - } -} diff --git a/test/phpunit/SelectTest.php b/test/phpunit/SelectTest.php deleted file mode 100644 index de882175855..00000000000 --- a/test/phpunit/SelectTest.php +++ /dev/null @@ -1,196 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbEnvironment; -use sql\MydbException\ServerGoneException; -use sql\MydbException\TerminationSignalException; -use sql\MydbMysqli; -use sql\MydbMysqli\MydbMysqliResult; -use const SIGQUIT; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class SelectTest extends includes\DatabaseTestCase -{ - /** - * @return array> - */ - public function dataProviderTestSimpleSelect(): array - { - return [ - 'simple select all' => [ - 'sql' => 'SELECT * FROM myusers', - 'expects' => [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ], - ], - 'complex select all' => [ - 'sql' => 'SELECT * FROM (SELECT * FROM (SELECT * FROM myusers) y ) x', - 'expects' => [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ], - ], - 'simple select JOIN' => [ - 'sql' => - 'SELECT myusers.id, HEX(id_binary) as id_binary - FROM myusers - JOIN myusers_devices ON (myusers_devices.id_user = myusers.id) - ORDER BY id_binary ASC', - 'expects' => [ - ['id' => '1', 'id_binary' => '657800000000000000000000'], - ['id' => '1', 'id_binary' => '657861000000000000000000'], - ['id' => '1', 'id_binary' => '6578616D0000000000000000'], - ['id' => '2', 'id_binary' => '6578616D7000000000000000'], - ], - ], - 'simple select UNION' => [ - 'sql' => - 'SELECT myusers.id FROM myusers WHERE id < 2 - UNION ALL - SELECT myusers.id FROM myusers WHERE id > 2', - 'expects' => [ - ['id' => '1'], - ['id' => '3'], - ], - ], - 'simple select ORDER BY' => [ - 'sql' => 'SELECT * FROM myusers ORDER BY id DESC', - 'expects' => [ - ['id' => '3', 'name' => 'user3'], - ['id' => '2', 'name' => 'user2'], - ['id' => '1', 'name' => 'user1'], - ], - ], - 'simple select WHERE' => [ - 'sql' => 'SELECT * FROM myusers WHERE id > 1 AND name like "%user%" LIMIT 2', - 'expects' => [ - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ], - ], - 'simple select COUNT' => [ - 'sql' => 'SELECT COUNT(*) as n FROM myusers WHERE id IN (1,2,3)', - 'expects' => [ - ['n' => '3'], - ], - ], - 'simple select GROUP BY' => [ - 'sql' => 'SELECT COUNT(*) as n, name FROM myusers WHERE id IN (1,2,3) GROUP BY name', - 'expects' => [ - ['n' => '1', 'name' => 'user1'], - ['n' => '1', 'name' => 'user2'], - ['n' => '1', 'name' => 'user3'], - ], - ], - 'simple select HAVING' => [ - 'sql' => 'SELECT COUNT(*) as n, name FROM myusers WHERE id IN (1,2,3) GROUP BY name HAVING n > 0', - 'expects' => [ - ['n' => '1', 'name' => 'user1'], - ['n' => '1', 'name' => 'user2'], - ['n' => '1', 'name' => 'user3'], - ], - ], - 'simple select LIMIT' => [ - 'sql' => 'SELECT * FROM myusers LIMIT 1', - 'expects' => [ - ['id' => '1', 'name' => 'user1'], - ], - ], - 'simple select LIMIT OFFSET' => [ - 'sql' => 'SELECT * FROM myusers LIMIT 1, 1', - 'expects' => [ - ['id' => '2', 'name' => 'user2'], - ], - ], - 'simple select ALL' => [ - 'sql' => 'SELECT ALL * FROM myusers LIMIT 1', - 'expects' => [ - ['id' => '1', 'name' => 'user1'], - ], - ], - 'simple select SQL_SMALL_RESULT' => [ - 'sql' => 'SELECT ALL SQL_SMALL_RESULT * FROM myusers LIMIT 1', - 'expects' => [ - ['id' => '1', 'name' => 'user1'], - ], - ], - - - ]; - } - - /** - * @dataProvider dataProviderTestSimpleSelect - */ - public function testSimpleSelect(string $sql, $expects): void - { - $db = $this->getDefaultDb(); - $actual = $db->select($sql); - self::assertSame($expects, $actual); - } - - public function testTerminationDuringQuery(): void - { - $db1 = $this->getDefaultDb(); - $db1->open(); - $actual = $db1->query("SELECT 1+1 as n"); - self::assertSame([['n' => '2']], $actual); - - $mysqli = $this->createMock(MydbMysqli::class); - $env = $this->createMock(MydbEnvironment::class); - $db2 = $this->getDefaultDb($mysqli, null, $env, null, true); - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - - $env->expects(self::once())->method('startSignalsTrap'); - $env->expects(self::once())->method('set_error_handler'); - $env->expects(self::once())->method('restore_error_handler'); - $env->expects(self::once())->method('endSignalsTrap')->willReturn([SIGQUIT]); - - $this->expectException(TerminationSignalException::class); - $db2->query("SELECT 2+2 as m"); - } - - public function testServerGoneDuringQuery(): void - { - $sql = $this->createMock(MydbMysqli::class); - $env = $this->createMock(MydbEnvironment::class); - $db1 = $this->getDefaultDb($sql, null, $env, null, true); - - $res = new MydbMysqliResult(null, [], 1); - $res->setErrorNumber(2002); - $res->setErrorMessage('hello-world-123'); - - $sql->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $sql->expects(self::once())->method('realQuery')->willReturn(true); - $sql->expects(self::once())->method('readServerResponse')->willReturn($res); - $sql->expects(self::once())->method('isServerGone')->willReturn(true); - $sql->expects(self::once())->method('close'); - - $this->expectException(ServerGoneException::class); - $this->expectExceptionMessage('hello-world-123'); - $db1->query("SELECT 1+1"); - } -} diff --git a/test/phpunit/TransactionsTest.php b/test/phpunit/TransactionsTest.php deleted file mode 100644 index 1d7851b2ed3..00000000000 --- a/test/phpunit/TransactionsTest.php +++ /dev/null @@ -1,198 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\TransactionBeginReadonlyException; -use sql\MydbException\TransactionBeginReadwriteException; -use sql\MydbException\TransactionCommitException; -use sql\MydbException\TransactionRollbackException; -use sql\MydbMysqli; -use sql\MydbOptions; -use function str_replace; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class TransactionsTest extends includes\DatabaseTestCase -{ - /** - * @throws \phpunit\MydbException - * @throws \phpunit\ConnectException - */ - public function testBeginTransactionReadonlyReal(): void - { - $mysqli = new MydbMysqli(); - $options = new MydbOptions(); - $options->setReadonly(true); - - $db = $this->getDefaultDb($mysqli, $options); - $db->open(); - - $db->beginTransaction(); - $data = $db->select('SELECT 1'); - self::assertSame([['1' => '1']], $data); - - $db->rollbackTransaction(); - $db->close(); - } - - /** - * @throws \phpunit\MydbException - * @throws \phpunit\ConnectException - */ - public function testBeginTransactionReadWriteReal(): void - { - $db = $this->getDefaultDb(); - $db->open(); - - $db->beginTransaction(); - $data = $db->select('SELECT 2 as n'); - self::assertSame([['n' => '2']], $data); - - $db->commitTransaction(); - $db->close(); - } - - public function testTransactionIsolationLevel(): void - { - $levels = [ - 'REPEATABLE READ', - 'REPEATABLE READ', - 'READ COMMITTED', - 'READ UNCOMMITTED', - 'SERIALIZABLE', - ]; - - foreach ($levels as $l) { - $mysqli = new MydbMysqli(); - $options = new MydbOptions(); - $options->setTransactionIsolationLevel($l); - - $db = $this->getDefaultDb($mysqli, $options, null, null, true); - $db->open(); - $row = $db->select('SELECT @@transaction_isolation as n'); - self::assertSame($row[0]['n'], str_replace(' ', '-', $l)); - $db->close(); - } - } - - public function testBeginTransactionReadonlySuccess(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isReadonly')->willReturn(true); - $mysqli->expects(self::once())->method('beginTransactionReadonly')->willReturn(true); - - $db->beginTransaction(); - } - - public function testBeginTransactionReadonlyFailure(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isReadonly')->willReturn(true); - $mysqli->expects(self::once())->method('beginTransactionReadonly')->willReturn(false); - $this->expectException(TransactionBeginReadonlyException::class); - - $db->beginTransaction(); - } - - public function testBeginTransactionReadwriteSuccess(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isReadonly')->willReturn(false); - $mysqli->expects(self::once())->method('beginTransactionReadwrite')->willReturn(true); - - $db->beginTransaction(); - } - - public function testBeginTransactionReadwriteFailure(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $options->method('isReadonly')->willReturn(false); - $mysqli->expects(self::once())->method('beginTransactionReadwrite')->willReturn(false); - $this->expectException(TransactionBeginReadwriteException::class); - - $db->beginTransaction(); - } - - public function testRollbackTransactionSuccess(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('rollback')->willReturn(true); - - $db->rollbackTransaction(); - } - - public function testRollbackTransactionFailure(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('rollback')->willReturn(false); - $this->expectException(TransactionRollbackException::class); - - $db->rollbackTransaction(); - } - - public function testCommitTransactionSuccess(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('commit')->willReturn(true); - - $db->commitTransaction(); - } - - public function testCommitTransactionFailure(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $options = $this->createMock(MydbOptions::class); - $db = $this->getDefaultDb($mysqli, $options); - - $mysqli->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('commit')->willReturn(false); - $this->expectException(TransactionCommitException::class); - - $db->commitTransaction(); - } -} diff --git a/test/phpunit/UpdateTest.php b/test/phpunit/UpdateTest.php deleted file mode 100644 index 0932477e833..00000000000 --- a/test/phpunit/UpdateTest.php +++ /dev/null @@ -1,174 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit; - -use sql\MydbException\UpdateException; -use sql\MydbExpression; -use sql\MydbMysqli; -use sql\MydbQueryBuilderInterface; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -final class UpdateTest extends includes\DatabaseTestCase -{ - public function testUpdateWhere(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - $db->updateWhere(['name' => 'hello1'], ['id' => 1, 'name' => 'user1'], 'myusers', ['name' => 'what']); - $db->updateWhere(['name' => 'hello2'], ['id' => 2, 'name' => 'user2'], 'myusers'); - $db->updateWhere(['name' => 'hello4', 'id' => 4], ['id' => 3, 'name' => 'user3'], 'myusers'); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'hello1'], - ['id' => '2', 'name' => 'hello2'], - ['id' => '4', 'name' => 'hello4'], - ]; - self::assertSame($reality, $actual); - - $affectedRows = $db->updateWhere(['name' => 'hello'], ['id' => [1, 2, 3, 4, 5, 6, 77, 88]], 'myusers'); - self::assertSame(3, $affectedRows); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'hello'], - ['id' => '2', 'name' => 'hello'], - ['id' => '4', 'name' => 'hello'], - ]; - self::assertSame($reality, $actual); - - $db->rollbackTransaction(); - $db->close(); - } - - public function testUpdate(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - - self::assertSame($defaults, $actual); - - self::assertSame(1, $db->update("UPDATE myusers SET name = 'userabc' WHERE id = 1")); - - $actual = $db->select("SELECT id, name FROM myusers"); - $reality = [ - ['id' => '1', 'name' => 'userabc'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($reality, $actual); - $db->rollbackTransaction(); - } - - public function testUpdateMany(): void - { - $db = $this->getDefaultDb(); - $db->open(); - $db->beginTransaction(); - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user1'], - ['id' => '2', 'name' => 'user2'], - ['id' => '3', 'name' => 'user3'], - ]; - self::assertSame($defaults, $actual); - $db->updateWhereMany( - [ - 'name' => [ ['user1', 'user10'], ['user2', new MydbExpression('"user22"')], ['user3', 333] ], - ], - [ - 'id' => [1, 2, 3], - ], - 'myusers' - ); - $actual = $db->select("SELECT id, name FROM myusers"); - $defaults = [ - ['id' => '1', 'name' => 'user10'], - ['id' => '2', 'name' => 'user22'], - ['id' => '3', 'name' => '333'], - ]; - self::assertSame($defaults, $actual); - - $db->rollbackTransaction(); - } - - public function testUpdateInternalError(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $sql = "UPDATE myusers SET id = 10000 WHERE id IN (991, 992)"; - - $r = new MydbMysqli\MydbMysqliResult(null, [], 0); - - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->with($sql)->willReturn(true); - $mysqli->expects(self::once())->method('readServerResponse')->willReturn($r); - $mysqli->expects(self::once())->method('getAffectedRows')->willReturn(null); - self::expectException(UpdateException::class); - - $result = $db->update($sql); - - self::assertNull($result); - } - - public function testUpdateReturnsNull(): void - { - $mysqli = $this->createMock(MydbMysqli::class); - $db = $this->getDefaultDb($mysqli); - - $sql = "UPDATE myusers SET id = 10000 WHERE id IN (991, 992)"; - $mysqli->expects(self::atLeastOnce())->method('isConnected')->willReturn(true); - $mysqli->expects(self::once())->method('realQuery')->with($sql)->willReturn(false); - $mysqli->expects(self::never())->method('readServerResponse'); - $result = $db->update($sql); - self::assertNull($result); - } - - public function testDeleteWhereReturnsNull(): void - { - $builder = $this->createMock(MydbQueryBuilderInterface::class); - - $db = $this->getDefaultDb(null, null, null, $builder); - - $builder->expects(self::once())->method('buildUpdateWhere')->willReturn(null); - self::assertNull($db->updateWhere([], [], '')); - } -} diff --git a/test/phpunit/includes/DatabaseTestCase.php b/test/phpunit/includes/DatabaseTestCase.php deleted file mode 100644 index 6df15beb7a8..00000000000 --- a/test/phpunit/includes/DatabaseTestCase.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * MIT License - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - * @license https://opensource.org/licenses/mit-license.php MIT - */ - -declare(strict_types = 1); - -namespace phpunit\includes; - -use PHPUnit\Framework\TestCase; -use Psr\Log\LoggerInterface; -use sql\Mydb; -use sql\MydbCredentials; -use sql\MydbEnvironmentInterface; -use sql\MydbInterface; -use sql\MydbMysqliInterface; -use sql\MydbOptions; -use sql\MydbOptionsInterface; -use sql\MydbQueryBuilderInterface; -use sql\MydbRegistry; -use function count; - -/** - * @author Sergei Shilko - * @license https://opensource.org/licenses/mit-license.php MIT - * - * @see https://github.com/sshilko/php-sql-mydb - */ -class DatabaseTestCase extends TestCase -{ - /** - * @psalm-suppress UndefinedConstant - */ - private const HOST = PHPUNIT_MYSQL_MYDB1_HOST; - - /** - * @psalm-suppress UndefinedConstant - */ - private const PORT = PHPUNIT_MYSQL_MYDB1_PORT; - - /** - * @psalm-suppress UndefinedConstant - */ - private const USER = PHPUNIT_MYSQL_MYDB1_USER; - - /** - * @psalm-suppress UndefinedConstant - */ - private const PASS = PHPUNIT_MYSQL_MYDB1_PASS; - - /** - * @psalm-suppress UndefinedConstant - */ - private const NAME = PHPUNIT_MYSQL_MYDB1_NAME; - - /** - * @psalm-suppress UndefinedConstant - */ - private const ROOT_U = PHPUNIT_MYSQL_ROOT_USER; - - /** - * @psalm-suppress UndefinedConstant - */ - private const ROOT_P = PHPUNIT_MYSQL_ROOT_PASS; - - /** - * @var \phpunit\includes\MockObject|\Psr\Log\LoggerInterface - */ - protected LoggerInterface $logger; - - private static ?MydbRegistry $registry = null; - - protected function setUp(): void - { - static::$registry = new MydbRegistry(); - $this->logger = $this->createMock(LoggerInterface::class); - } - - protected function tearDown(): void - { - if (count(static::$registry)) { - /** - * @phpcs:disable SlevomatCodingStandard.Variables.UnusedVariable.UnusedVariable - */ - foreach (static::$registry as $index => $value) { - static::$registry->offsetUnset($index); - } - } - static::$registry = null; - } - - /** - * @return \sql\Mydb - */ - protected function getDefaultDb( - ?MydbMysqliInterface $mysqli = null, - ?MydbOptionsInterface $options = null, - ?MydbEnvironmentInterface $environment = null, - ?MydbQueryBuilderInterface $builder = null, - bool $refresh = false, - ): MydbInterface { - if (!isset(static::$registry['db0']) || true === $refresh) { - $credentials = new MydbCredentials(self::HOST, self::USER, self::PASS, self::NAME, (int) self::PORT); - if (isset(static::$registry['db0'])) { - unset(static::$registry['db0']); - } - static::$registry['db0'] = new Mydb($credentials, $this->logger, $options, $mysqli, $environment, $builder); - } - - return static::$registry['db0']; - } - - protected function getNoConnectDb(): Mydb - { - if (!isset(static::$registry['db1'])) { - $options = new MydbOptions(); - $credentials = new MydbCredentials('1.2.3.4', self::USER, self::PASS, self::NAME, (int) self::PORT); - - $options->setConnectTimeout(1); - static::$registry['db1'] = new Mydb($credentials, $this->logger, $options); - } - - return static::$registry['db1']; - } - - protected function getRootDb(): MydbInterface - { - if (!isset(static::$registry['db2'])) { - $options = new MydbOptions(); - $options->setAutocommit(true); - - $credentials = new MydbCredentials(self::HOST, self::ROOT_U, self::ROOT_P, self::NAME, (int) self::PORT); - static::$registry['db2'] = new Mydb($credentials, $this->logger, $options); - } - - return static::$registry['db2']; - } - - protected static function getDbName(): string - { - return self::NAME; - } -} diff --git a/test/tmp/.gitignore b/test/tmp/.gitignore deleted file mode 100644 index c96a04f008e..00000000000 --- a/test/tmp/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore \ No newline at end of file