Skip to content

WIP: Add ext/pdo stubs #4915

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
240 changes: 240 additions & 0 deletions ext/pdo/pdo.stub.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
<?php

class PDO
{
public function __construct(string $dsn, ?string $username = null, ?string $passwd = null, ?array $options = null);

/**
* @param string $statement
* @param array $options
*
* @return PDOStatement|false
*/
public function prepare(string $statement, array $options = []);

/**
* @return bool
*/
public function beginTransaction();

/**
* @return bool
*/
public function commit();

/**
* @return bool
*/
public function rollBack();

/**
* @return bool
*/
public function inTransaction();

/**
* @param int $attribute
* @param mixed $value
*
* @return bool
*/
public function setAttribute(int $attribute, $value);

/**
* @param string $query
*
* @return int|false
*/
public function exec(string $query);

/**
* @param string $sql
*
* @return object
*/
public function query(string $sql);

/**
* @param ?string $seqname = null
*
* @return int|false
*/
public function lastInsertId(?string $seqname = null);

/**
* @return string|null
*/
public function errorCode();

/**
* @return array
*/
public function errorInfo();

/**
* @param int $attribute
*
* @return mixed
*/
public function getAttribute(int $attribute);

/**
* @param string $string
* @param int $paramtype
*
* @return string|false
*/
public function quote(string $string, int $paramtype = 0);

/**
* @return array
*/
public static function getAvailableDrivers();
}

class PDOException
{
}

class PDOStatement
{
/**
* @param array $bound_input_params
*
* @return bool
*/
public function execute(?array $bound_input_params = null);

/**
* @param ?int $how = PDO_FETCH_BOTH
* @param ?int $orientation
* @param ?int $offset
*
* @return mixed
*/
public function fetch($how = PDO_FETCH_BOTH, $orientation = 0, $offset = 0);

/**
* @param int|string $paramno
* @param mixed &$param
* @param int $type
* @param int $maxlen
* @param ?mixed $driverdata
*
* @return bool
*/
public function bindParam($paramno, &$param, $type = 0, $maxlen = 0, $driverdata = null);

/**
* @param int|string $paramno
* @param mixed &$param
* @param int $type
* @param int $maxlen
* @param ?mixed $driverdata
*
* @return bool
*/
public function bindColumn($paramno, &$param, $type = 0, $maxlen = 0, $driverdata = null);

/**
* @param int|string $paramno
* @param mixed $param
* @param int $type
*
* @return bool
*/
public function bindValue($paramno, $param, int $type = 0);

/**
* @return int
*/
public function rowCount();

/**
* @param int $column_number
*
* @return string|false
*/
public function fetchColumn(int $column_number = 0);

/**
* @param int $how
* @param string $class_name
* @param ?array $ctor_args
*
* @return array|false
*/
public function fetchAll($how = PDO_FETCH_BOTH, $class_name = '', $ctor_args = null);

/**
* @param string $class_name
* @param ?array $ctor_args
*
* @return mixed
*/
public function fetchObject(string $class_name = '', ?array $ctor_args = null);

/**
* @return string|null
*/
public function errorCode();

/**
* @return array
*/
public function errorInfo();

/**
* @param int $attribute
* @param mixed $value
*
* @return bool
*/
public function setAttribute(int $attribute, mixed $value);

/**
* @param int $attribute
*
* @return mixed
*/
public function getAttribute(int $attribute);

/**
* @return int
*/
public function columnCount();

/**
* @param int $column
*
* @return array|false
*/
public function getColumnMeta(int $column);

/**
* @param int $mode
* @param ?mixed $params
*
* @return bool
*/
public function setFetchMode($mode, $params = null);

/**
* @return bool
*/
public function nextRowset();

/**
* @return bool
*/
public function closeCursor();

/**
* @return void|false
*/
public function debugDumpParams();
}

class PDORow
{
}
125 changes: 125 additions & 0 deletions ext/pdo/pdo_arginfo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
/* This is a generated file, edit the .stub.php file instead. */

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, dsn, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, username, IS_STRING, 1)
ZEND_ARG_TYPE_INFO(0, passwd, IS_STRING, 1)
ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 1)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_prepare, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, statement, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_beginTransaction, 0, 0, 0)
ZEND_END_ARG_INFO()

#define arginfo_class_PDO_commit arginfo_class_PDO_beginTransaction

#define arginfo_class_PDO_rollBack arginfo_class_PDO_beginTransaction

#define arginfo_class_PDO_inTransaction arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_setAttribute, 0, 0, 2)
ZEND_ARG_TYPE_INFO(0, attribute, IS_LONG, 0)
ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_exec, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_query, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, sql, IS_STRING, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_lastInsertId, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, seqname, IS_STRING, 1)
ZEND_END_ARG_INFO()

#define arginfo_class_PDO_errorCode arginfo_class_PDO_beginTransaction

#define arginfo_class_PDO_errorInfo arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_getAttribute, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, attribute, IS_LONG, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO_quote, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, paramtype, IS_LONG, 0)
ZEND_END_ARG_INFO()

#define arginfo_class_PDO_getAvailableDrivers arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_execute, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, bound_input_params, IS_ARRAY, 1)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_fetch, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, how, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, orientation, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_bindParam, 0, 0, 2)
ZEND_ARG_INFO(0, paramno)
ZEND_ARG_INFO(1, param)
ZEND_ARG_INFO(0, type)
ZEND_ARG_INFO(0, maxlen)
ZEND_ARG_INFO(0, driverdata)
ZEND_END_ARG_INFO()

#define arginfo_class_PDOStatement_bindColumn arginfo_class_PDOStatement_bindParam

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_bindValue, 0, 0, 2)
ZEND_ARG_INFO(0, paramno)
ZEND_ARG_INFO(0, param)
ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
ZEND_END_ARG_INFO()

#define arginfo_class_PDOStatement_rowCount arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_fetchColumn, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, column_number, IS_LONG, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_fetchAll, 0, 0, 0)
ZEND_ARG_INFO(0, how)
ZEND_ARG_INFO(0, class_name)
ZEND_ARG_INFO(0, ctor_args)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_fetchObject, 0, 0, 0)
ZEND_ARG_TYPE_INFO(0, class_name, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, ctor_args, IS_ARRAY, 1)
ZEND_END_ARG_INFO()

#define arginfo_class_PDOStatement_errorCode arginfo_class_PDO_beginTransaction

#define arginfo_class_PDOStatement_errorInfo arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_setAttribute, 0, 0, 2)
ZEND_ARG_TYPE_INFO(0, attribute, IS_LONG, 0)
ZEND_ARG_OBJ_INFO(0, value, mixed, 0)
ZEND_END_ARG_INFO()

#define arginfo_class_PDOStatement_getAttribute arginfo_class_PDO_getAttribute

#define arginfo_class_PDOStatement_columnCount arginfo_class_PDO_beginTransaction

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_getColumnMeta, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, column, IS_LONG, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_setFetchMode, 0, 0, 1)
ZEND_ARG_INFO(0, mode)
ZEND_ARG_INFO(0, params)
ZEND_END_ARG_INFO()

#define arginfo_class_PDOStatement_nextRowset arginfo_class_PDO_beginTransaction

#define arginfo_class_PDOStatement_closeCursor arginfo_class_PDO_beginTransaction

#define arginfo_class_PDOStatement_debugDumpParams arginfo_class_PDO_beginTransaction
Loading