Skip to content

Commit 107c1e0

Browse files
duncan3dccmb69
authored andcommitted
Convert sqlite3 functions arginfo to php stubs
1 parent 743d276 commit 107c1e0

File tree

3 files changed

+313
-150
lines changed

3 files changed

+313
-150
lines changed

ext/sqlite3/sqlite3.c

Lines changed: 42 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "ext/standard/info.h"
2626
#include "php_sqlite3.h"
2727
#include "php_sqlite3_structs.h"
28+
#include "sqlite3_arginfo.h"
2829
#include "main/SAPI.h"
2930

3031
#include <sqlite3.h>
@@ -322,7 +323,7 @@ PHP_METHOD(sqlite3, enableExtendedResultCodes)
322323
int ret;
323324

324325
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->db, SQLite3)
325-
326+
326327
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|b", &enable) == FAILURE) {
327328
return;
328329
}
@@ -2106,174 +2107,65 @@ PHP_METHOD(sqlite3result, __construct)
21062107
}
21072108
/* }}} */
21082109

2109-
/* {{{ arginfo */
2110-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_open, 0, 0, 1)
2111-
ZEND_ARG_INFO(0, filename)
2112-
ZEND_ARG_INFO(0, flags)
2113-
ZEND_ARG_INFO(0, encryption_key)
2114-
ZEND_END_ARG_INFO()
2115-
2116-
ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_busytimeout, 0)
2117-
ZEND_ARG_INFO(0, ms)
2118-
ZEND_END_ARG_INFO()
2119-
2120-
#ifndef SQLITE_OMIT_LOAD_EXTENSION
2121-
ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_loadextension, 0)
2122-
ZEND_ARG_INFO(0, shared_library)
2123-
ZEND_END_ARG_INFO()
2124-
#endif
2125-
2126-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_escapestring, 0, 0, 1)
2127-
ZEND_ARG_INFO(0, value)
2128-
ZEND_END_ARG_INFO()
2129-
2130-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_query, 0, 0, 1)
2131-
ZEND_ARG_INFO(0, query)
2132-
ZEND_END_ARG_INFO()
2133-
2134-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_querysingle, 0, 0, 1)
2135-
ZEND_ARG_INFO(0, query)
2136-
ZEND_ARG_INFO(0, entire_row)
2137-
ZEND_END_ARG_INFO()
2138-
2139-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createfunction, 0, 0, 2)
2140-
ZEND_ARG_INFO(0, name)
2141-
ZEND_ARG_INFO(0, callback)
2142-
ZEND_ARG_INFO(0, argument_count)
2143-
ZEND_ARG_INFO(0, flags)
2144-
ZEND_END_ARG_INFO()
2145-
2146-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createaggregate, 0, 0, 3)
2147-
ZEND_ARG_INFO(0, name)
2148-
ZEND_ARG_INFO(0, step_callback)
2149-
ZEND_ARG_INFO(0, final_callback)
2150-
ZEND_ARG_INFO(0, argument_count)
2151-
ZEND_END_ARG_INFO()
2152-
2153-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createcollation, 0, 0, 2)
2154-
ZEND_ARG_INFO(0, name)
2155-
ZEND_ARG_INFO(0, callback)
2156-
ZEND_END_ARG_INFO()
2157-
2158-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_openblob, 0, 0, 3)
2159-
ZEND_ARG_INFO(0, table)
2160-
ZEND_ARG_INFO(0, column)
2161-
ZEND_ARG_INFO(0, rowid)
2162-
ZEND_ARG_INFO(0, dbname)
2163-
ZEND_ARG_INFO(0, flags)
2164-
ZEND_END_ARG_INFO()
2165-
2166-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_enableexceptions, 0, 0, 0)
2167-
ZEND_ARG_INFO(0, enableExceptions)
2168-
ZEND_END_ARG_INFO()
2169-
2170-
#if SQLITE_VERSION_NUMBER >= 3006011
2171-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_backup, 0, 0, 1)
2172-
ZEND_ARG_INFO(0, destination_db)
2173-
ZEND_ARG_INFO(0, source_dbname)
2174-
ZEND_ARG_INFO(0, destination_dbname)
2175-
ZEND_END_ARG_INFO()
2176-
#endif
2177-
2178-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindparam, 0, 0, 2)
2179-
ZEND_ARG_INFO(0, param_number)
2180-
ZEND_ARG_INFO(1, param)
2181-
ZEND_ARG_INFO(0, type)
2182-
ZEND_END_ARG_INFO()
2183-
2184-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindvalue, 0, 0, 2)
2185-
ZEND_ARG_INFO(0, param_number)
2186-
ZEND_ARG_INFO(0, param)
2187-
ZEND_ARG_INFO(0, type)
2188-
ZEND_END_ARG_INFO()
2189-
2190-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_construct, 0, 0, 1)
2191-
ZEND_ARG_INFO(0, sqlite3)
2192-
ZEND_END_ARG_INFO()
2193-
2194-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_getsql, 0, 0, 0)
2195-
ZEND_ARG_INFO(0, expanded)
2196-
ZEND_END_ARG_INFO()
2197-
2198-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columnname, 0, 0, 1)
2199-
ZEND_ARG_INFO(0, column_number)
2200-
ZEND_END_ARG_INFO()
2201-
2202-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columntype, 0, 0, 1)
2203-
ZEND_ARG_INFO(0, column_number)
2204-
ZEND_END_ARG_INFO()
2205-
2206-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_fetcharray, 0, 0, 0)
2207-
ZEND_ARG_INFO(0, mode)
2208-
ZEND_END_ARG_INFO()
2209-
2210-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_enableextended, 0, 0, 1)
2211-
ZEND_ARG_INFO(0, enable)
2212-
ZEND_END_ARG_INFO()
2213-
2214-
ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_void, 0)
2215-
ZEND_END_ARG_INFO()
2216-
/* }}} */
2217-
22182110
/* {{{ php_sqlite3_class_methods */
22192111
static const zend_function_entry php_sqlite3_class_methods[] = {
2220-
PHP_ME(sqlite3, open, arginfo_sqlite3_open, ZEND_ACC_PUBLIC)
2221-
PHP_ME(sqlite3, close, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2222-
PHP_ME(sqlite3, exec, arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
2223-
PHP_ME(sqlite3, version, arginfo_sqlite3_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2224-
PHP_ME(sqlite3, lastInsertRowID, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2225-
PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2226-
PHP_ME(sqlite3, lastExtendedErrorCode, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2227-
PHP_ME(sqlite3, enableExtendedResultCodes, arginfo_sqlite3_enableextended, ZEND_ACC_PUBLIC)
2228-
PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2229-
PHP_ME(sqlite3, busyTimeout, arginfo_sqlite3_busytimeout, ZEND_ACC_PUBLIC)
2112+
PHP_ME(sqlite3, open, arginfo_class_SQLite3_open, ZEND_ACC_PUBLIC)
2113+
PHP_ME(sqlite3, close, arginfo_class_SQLite3_close, ZEND_ACC_PUBLIC)
2114+
PHP_ME(sqlite3, exec, arginfo_class_SQLite3_query, ZEND_ACC_PUBLIC)
2115+
PHP_ME(sqlite3, version, arginfo_class_SQLite3_version, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2116+
PHP_ME(sqlite3, lastInsertRowID, arginfo_class_SQLite3_lastInsertRowID, ZEND_ACC_PUBLIC)
2117+
PHP_ME(sqlite3, lastErrorCode, arginfo_class_SQLite3_lastErrorCode, ZEND_ACC_PUBLIC)
2118+
PHP_ME(sqlite3, lastExtendedErrorCode, arginfo_class_SQLite3_lastExtendedErrorCode, ZEND_ACC_PUBLIC)
2119+
PHP_ME(sqlite3, enableExtendedResultCodes, arginfo_class_SQLite3_enableExtendedResultCodes, ZEND_ACC_PUBLIC)
2120+
PHP_ME(sqlite3, lastErrorMsg, arginfo_class_SQLite3_lastErrorMsg, ZEND_ACC_PUBLIC)
2121+
PHP_ME(sqlite3, busyTimeout, arginfo_class_SQLite3_busyTimeout, ZEND_ACC_PUBLIC)
22302122
#ifndef SQLITE_OMIT_LOAD_EXTENSION
2231-
PHP_ME(sqlite3, loadExtension, arginfo_sqlite3_loadextension, ZEND_ACC_PUBLIC)
2123+
PHP_ME(sqlite3, loadExtension, arginfo_class_SQLite3_loadExtension, ZEND_ACC_PUBLIC)
22322124
#endif
2233-
PHP_ME(sqlite3, changes, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2234-
PHP_ME(sqlite3, escapeString, arginfo_sqlite3_escapestring, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2235-
PHP_ME(sqlite3, prepare, arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
2236-
PHP_ME(sqlite3, query, arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
2237-
PHP_ME(sqlite3, querySingle, arginfo_sqlite3_querysingle, ZEND_ACC_PUBLIC)
2238-
PHP_ME(sqlite3, createFunction, arginfo_sqlite3_createfunction, ZEND_ACC_PUBLIC)
2239-
PHP_ME(sqlite3, createAggregate, arginfo_sqlite3_createaggregate, ZEND_ACC_PUBLIC)
2240-
PHP_ME(sqlite3, createCollation, arginfo_sqlite3_createcollation, ZEND_ACC_PUBLIC)
2241-
PHP_ME(sqlite3, openBlob, arginfo_sqlite3_openblob, ZEND_ACC_PUBLIC)
2242-
PHP_ME(sqlite3, enableExceptions, arginfo_sqlite3_enableexceptions, ZEND_ACC_PUBLIC)
2125+
PHP_ME(sqlite3, changes, arginfo_class_SQLite3_changes, ZEND_ACC_PUBLIC)
2126+
PHP_ME(sqlite3, escapeString, arginfo_class_SQLite3_escapeString, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
2127+
PHP_ME(sqlite3, prepare, arginfo_class_SQLite3_prepare, ZEND_ACC_PUBLIC)
2128+
PHP_ME(sqlite3, query, arginfo_class_SQLite3_query, ZEND_ACC_PUBLIC)
2129+
PHP_ME(sqlite3, querySingle, arginfo_class_SQLite3_querySingle, ZEND_ACC_PUBLIC)
2130+
PHP_ME(sqlite3, createFunction, arginfo_class_SQLite3_createFunction, ZEND_ACC_PUBLIC)
2131+
PHP_ME(sqlite3, createAggregate, arginfo_class_SQLite3_createAggregate, ZEND_ACC_PUBLIC)
2132+
PHP_ME(sqlite3, createCollation, arginfo_class_SQLite3_createCollation, ZEND_ACC_PUBLIC)
2133+
PHP_ME(sqlite3, openBlob, arginfo_class_SQLite3_openBlob, ZEND_ACC_PUBLIC)
2134+
PHP_ME(sqlite3, enableExceptions, arginfo_class_SQLite3_enableExceptions, ZEND_ACC_PUBLIC)
22432135
#if SQLITE_VERSION_NUMBER >= 3006011
2244-
PHP_ME(sqlite3, backup, arginfo_sqlite3_backup, ZEND_ACC_PUBLIC)
2136+
PHP_ME(sqlite3, backup, arginfo_class_SQLite3_backup, ZEND_ACC_PUBLIC)
22452137
#endif
22462138
/* Aliases */
2247-
PHP_MALIAS(sqlite3, __construct, open, arginfo_sqlite3_open, ZEND_ACC_PUBLIC)
2139+
PHP_MALIAS(sqlite3, __construct, open, arginfo_class_SQLite3___construct, ZEND_ACC_PUBLIC)
22482140
PHP_FE_END
22492141
};
22502142
/* }}} */
22512143

22522144
/* {{{ php_sqlite3_stmt_class_methods */
22532145
static const zend_function_entry php_sqlite3_stmt_class_methods[] = {
2254-
PHP_ME(sqlite3stmt, paramCount, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2255-
PHP_ME(sqlite3stmt, close, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2256-
PHP_ME(sqlite3stmt, reset, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2257-
PHP_ME(sqlite3stmt, clear, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2258-
PHP_ME(sqlite3stmt, execute, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2259-
PHP_ME(sqlite3stmt, bindParam, arginfo_sqlite3stmt_bindparam, ZEND_ACC_PUBLIC)
2260-
PHP_ME(sqlite3stmt, bindValue, arginfo_sqlite3stmt_bindvalue, ZEND_ACC_PUBLIC)
2261-
PHP_ME(sqlite3stmt, readOnly, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2262-
PHP_ME(sqlite3stmt, getSQL, arginfo_sqlite3stmt_getsql, ZEND_ACC_PUBLIC)
2263-
PHP_ME(sqlite3stmt, __construct, arginfo_sqlite3stmt_construct, ZEND_ACC_PRIVATE)
2146+
PHP_ME(sqlite3stmt, paramCount, arginfo_class_SQLite3Stmt_paramCount, ZEND_ACC_PUBLIC)
2147+
PHP_ME(sqlite3stmt, close, arginfo_class_SQLite3Stmt_close, ZEND_ACC_PUBLIC)
2148+
PHP_ME(sqlite3stmt, reset, arginfo_class_SQLite3Stmt_reset, ZEND_ACC_PUBLIC)
2149+
PHP_ME(sqlite3stmt, clear, arginfo_class_SQLite3Stmt_clear, ZEND_ACC_PUBLIC)
2150+
PHP_ME(sqlite3stmt, execute, arginfo_class_SQLite3Stmt_execute, ZEND_ACC_PUBLIC)
2151+
PHP_ME(sqlite3stmt, bindParam, arginfo_class_SQLite3Stmt_bindParam, ZEND_ACC_PUBLIC)
2152+
PHP_ME(sqlite3stmt, bindValue, arginfo_class_SQLite3Stmt_bindValue, ZEND_ACC_PUBLIC)
2153+
PHP_ME(sqlite3stmt, readOnly, arginfo_class_SQLite3Stmt_readOnly, ZEND_ACC_PUBLIC)
2154+
PHP_ME(sqlite3stmt, getSQL, arginfo_class_SQLite3Stmt_getSQL, ZEND_ACC_PUBLIC)
2155+
PHP_ME(sqlite3stmt, __construct, arginfo_class_SQLite3Stmt___construct, ZEND_ACC_PRIVATE)
22642156
PHP_FE_END
22652157
};
22662158
/* }}} */
22672159

22682160
/* {{{ php_sqlite3_result_class_methods */
22692161
static const zend_function_entry php_sqlite3_result_class_methods[] = {
2270-
PHP_ME(sqlite3result, numColumns, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2271-
PHP_ME(sqlite3result, columnName, arginfo_sqlite3result_columnname, ZEND_ACC_PUBLIC)
2272-
PHP_ME(sqlite3result, columnType, arginfo_sqlite3result_columntype, ZEND_ACC_PUBLIC)
2273-
PHP_ME(sqlite3result, fetchArray, arginfo_sqlite3result_fetcharray, ZEND_ACC_PUBLIC)
2274-
PHP_ME(sqlite3result, reset, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2275-
PHP_ME(sqlite3result, finalize, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
2276-
PHP_ME(sqlite3result, __construct, arginfo_sqlite3_void, ZEND_ACC_PRIVATE)
2162+
PHP_ME(sqlite3result, numColumns, arginfo_class_SQLite3Result_numColumns, ZEND_ACC_PUBLIC)
2163+
PHP_ME(sqlite3result, columnName, arginfo_class_SQLite3Result_columnName, ZEND_ACC_PUBLIC)
2164+
PHP_ME(sqlite3result, columnType, arginfo_class_SQLite3Result_columnType, ZEND_ACC_PUBLIC)
2165+
PHP_ME(sqlite3result, fetchArray, arginfo_class_SQLite3Result_fetchArray, ZEND_ACC_PUBLIC)
2166+
PHP_ME(sqlite3result, reset, arginfo_class_SQLite3Result_reset, ZEND_ACC_PUBLIC)
2167+
PHP_ME(sqlite3result, finalize, arginfo_class_SQLite3Result_finalize, ZEND_ACC_PUBLIC)
2168+
PHP_ME(sqlite3result, __construct, arginfo_class_SQLite3Result___construct, ZEND_ACC_PRIVATE)
22772169
PHP_FE_END
22782170
};
22792171
/* }}} */

ext/sqlite3/sqlite3.stub.php

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<?php
2+
3+
class SQLite3
4+
{
5+
function __construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryption_key = '') {}
6+
7+
/** @return void */
8+
function open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryption_key = '') {}
9+
10+
/** @return bool */
11+
function close() {}
12+
13+
/** @return array */
14+
function version() {}
15+
16+
/** @return int */
17+
function lastInsertRowID() {}
18+
19+
/** @return int */
20+
function lastErrorCode() {}
21+
22+
/** @return int */
23+
function lastExtendedErrorCode() {}
24+
25+
/** @return string */
26+
function lastErrorMsg() {}
27+
28+
/** @return int */
29+
function changes() {}
30+
31+
/** @return bool */
32+
function busyTimeout(int $ms) {}
33+
34+
#ifndef SQLITE_OMIT_LOAD_EXTENSION
35+
/** @return bool */
36+
function loadExtension(string $shared_library) {}
37+
#endif
38+
39+
#if SQLITE_VERSION_NUMBER >= 3006011
40+
/** @return bool */
41+
function backup(SQLite3 $destination_db, string $source_dbname = "main", string $destination_dbname = "main") {}
42+
#endif
43+
44+
/** @return string */
45+
function escapeString(string $value) {}
46+
47+
/** @return SQLite3Stmt|false */
48+
function prepare(string $query) {}
49+
50+
/** @return SQLite3Result|false|null */
51+
function query(string $query) {}
52+
53+
/** @return mixed */
54+
function querySingle(string $query, bool $entire_row = false) {}
55+
56+
/** @return bool */
57+
function createFunction(string $name, $callback, int $argument_count = -1, int $flags = 0) {}
58+
59+
/** @return bool */
60+
function createAggregate(string $name, $step_callback, $final_callback, int $argument_count = -1) {}
61+
62+
/** @return bool */
63+
function createCollation(string $name, $callback) {}
64+
65+
/** @return resource|false */
66+
function openBlob(string $table, string $column, int $rowid, string $dbname = "main", int $flags = SQLITE3_OPEN_READONLY) {}
67+
68+
/** @return bool */
69+
function enableExceptions(bool $enableExceptions = false) {}
70+
71+
/** @return bool */
72+
function enableExtendedResultCodes(bool $enable = true) {}
73+
}
74+
75+
class SQLite3Stmt
76+
{
77+
function __construct(SQLite3 $sqlite3, string $sql) {}
78+
79+
/** @return bool */
80+
function bindParam($param_number, &$param, int $type = UNKNOWN) {}
81+
82+
/** @return bool */
83+
function bindValue($param_number, $param, int $type = UNKNOWN) {}
84+
85+
/** @return bool */
86+
function clear() {}
87+
88+
/** @return bool */
89+
function close() {}
90+
91+
/** @return SQLite3Result|false */
92+
function execute() {}
93+
94+
/** @return string|false */
95+
function getSQL(bool $expanded = false) {}
96+
97+
/** @return int */
98+
function paramCount() {}
99+
100+
/** @return bool */
101+
function readOnly() {}
102+
103+
/** @return bool */
104+
function reset() {}
105+
}
106+
107+
class SQLite3Result
108+
{
109+
function __construct() {}
110+
111+
/** @return int */
112+
function numColumns() {}
113+
114+
/** @return string|false */
115+
function columnName(int $column_number) {}
116+
117+
/** @return int|false */
118+
function columnType(int $column_number) {}
119+
120+
/** @return array|false */
121+
function fetchArray(int $mode = SQLITE3_BOTH) {}
122+
123+
/** @return bool */
124+
function reset() {}
125+
126+
/** @return bool */
127+
function finalize() {}
128+
}

0 commit comments

Comments
 (0)