{
    "id": "mysql147-x-statement-contract-map",
    "title": "Проверить доступность Statement без создания нативного объекта",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Statement зарегистрирован",
            true
        ],
        [
            "Класс внутренний",
            true
        ],
        [
            "Можно создать обычным new",
            false
        ],
        [
            "Видимость конструктора",
            "private"
        ],
        [
            "EXECUTE_ASYNC",
            1
        ],
        [
            "BUFFERED",
            2
        ],
        [
            "getResult — public",
            true
        ],
        [
            "getNextResult — public",
            true
        ],
        [
            "hasMoreResults — public",
            true
        ],
        [
            "У Statement есть execute",
            false
        ],
        [
            "У SqlStatement есть public execute",
            true
        ],
        [
            "Рабочий путь",
            "Session::sql → SqlStatement → результат"
        ],
        [
            "Соединение с базой открывалось",
            false
        ]
    ],
    "checks": {
        "registered_internal_class": true,
        "constructor_boundary": true,
        "constants_match": true,
        "three_instance_readers": true,
        "public_sql_route_has_execute": true,
        "no_database_contact": true,
        "owned_objects_removed": true
    },
    "observations": {
        "class": "mysql_xdevapi\\Statement",
        "extension": "mysql_xdevapi",
        "internal": true,
        "instantiable": false,
        "constructor_visibility": "private",
        "constants": {
            "BUFFERED": 2,
            "EXECUTE_ASYNC": 1
        },
        "methods": {
            "getResult": {
                "public": true,
                "static": false,
                "required_parameters": 0,
                "declared_parameters": 0,
                "declared_return": null,
                "declaring_class": "mysql_xdevapi\\Statement"
            },
            "getNextResult": {
                "public": true,
                "static": false,
                "required_parameters": 0,
                "declared_parameters": 0,
                "declared_return": null,
                "declaring_class": "mysql_xdevapi\\Statement"
            },
            "hasMoreResults": {
                "public": true,
                "static": false,
                "required_parameters": 0,
                "declared_parameters": 0,
                "declared_return": null,
                "declaring_class": "mysql_xdevapi\\Statement"
            }
        },
        "statement_has_execute": false,
        "sqlstatement_has_public_execute": true,
        "native_instance_created": false,
        "native_instance_methods_called": false,
        "database_connection_attempted": false
    },
    "runtime": {
        "php": "8.3.35",
        "extension": "8.0.30",
        "server_version": null,
        "schema": null,
        "host": null,
        "port": null
    },
    "owned_objects": [],
    "removed_objects": []
}
