dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clean up array() syntax in docs, part II
[lhc/web/wiklou.git]
/
includes
/
db
/
IDatabase.php
diff --git
a/includes/db/IDatabase.php
b/includes/db/IDatabase.php
index
36772b8
..
9dcbd7f
100644
(file)
--- a/
includes/db/IDatabase.php
+++ b/
includes/db/IDatabase.php
@@
-33,6
+33,11
@@
* @ingroup Database
*/
interface IDatabase {
* @ingroup Database
*/
interface IDatabase {
+ /* Constants to onTransactionResolution() callbacks */
+ const TRIGGER_IDLE = 1;
+ const TRIGGER_COMMIT = 2;
+ const TRIGGER_ROLLBACK = 3;
+
/**
* A string describing the current software version, and possibly
* other details in a user-friendly way. Will be listed on Special:Version, etc.
/**
* A string describing the current software version, and possibly
* other details in a user-friendly way. Will be listed on Special:Version, etc.
@@
-324,7
+329,7
@@
interface IDatabase {
*
* Example:
* $id = $dbw->nextSequenceValue( 'page_page_id_seq' );
*
* Example:
* $id = $dbw->nextSequenceValue( 'page_page_id_seq' );
- * $dbw->insert( 'page',
array( 'page_id' => $id )
);
+ * $dbw->insert( 'page',
[ 'page_id' => $id ]
);
* $id = $dbw->insertId();
*
* @return int
* $id = $dbw->insertId();
*
* @return int
@@
-514,7
+519,7
@@
interface IDatabase {
* May be either an array of table names, or a single string holding a table
* name. If an array is given, table aliases can be specified, for example:
*
* May be either an array of table names, or a single string holding a table
* name. If an array is given, table aliases can be specified, for example:
*
- *
array( 'a' => 'user' )
+ *
[ 'a' => 'user' ]
*
* This includes the user table in the query, with the alias "a" available
* for use in field names (e.g. a.user_name).
*
* This includes the user table in the query, with the alias "a" available
* for use in field names (e.g. a.user_name).
@@
-532,7
+537,7
@@
interface IDatabase {
* can be complete fragments of SQL, for direct inclusion into the SELECT
* query. If an array is given, field aliases can be specified, for example:
*
* can be complete fragments of SQL, for direct inclusion into the SELECT
* query. If an array is given, field aliases can be specified, for example:
*
- *
array( 'maxrev' => 'MAX(rev_id)' )
+ *
[ 'maxrev' => 'MAX(rev_id)' ]
*
* This includes an expression with the alias "maxrev" in the query.
*
*
* This includes an expression with the alias "maxrev" in the query.
*
@@
-577,7
+582,7
@@
interface IDatabase {
* including them in the array as a string value with a numeric key, for
* example:
*
* including them in the array as a string value with a numeric key, for
* example:
*
- *
array( 'FOR UPDATE' )
+ *
[ 'FOR UPDATE' ]
*
* The supported options are:
*
*
* The supported options are:
*
@@
-639,7
+644,7
@@
interface IDatabase {
* an SQL fragment, or an array where the string keys are equality and the
* numeric keys are SQL fragments all AND'd together. For example:
*
* an SQL fragment, or an array where the string keys are equality and the
* numeric keys are SQL fragments all AND'd together. For example:
*
- *
array( 'page' => array( 'LEFT JOIN', 'page_latest=rev_id' ) )
+ *
[ 'page' => [ 'LEFT JOIN', 'page_latest=rev_id' ] ]
*
* @return ResultWrapper|bool If the query returned no rows, a ResultWrapper
* with no rows in it will be returned. If there was a query error, a
*
* @return ResultWrapper|bool If the query returned no rows, a ResultWrapper
* with no rows in it will be returned. If there was a query error, a
@@
-852,7
+857,7
@@
interface IDatabase {
* The keys on each level may be either integers or strings.
*
* @param array $data Organized as 2-d
* The keys on each level may be either integers or strings.
*
* @param array $data Organized as 2-d
- *
array(baseKeyVal => array(subKeyVal => [ignored], ...), ...)
+ *
[ baseKeyVal => [ subKeyVal => [ignored], ... ], ... ]
* @param string $baseKey Field name to match the base-level keys to (eg 'pl_namespace')
* @param string $subKey Field name to match the sub-level keys to (eg 'pl_title')
* @return string|bool SQL fragment, or false if no items in array
* @param string $baseKey Field name to match the base-level keys to (eg 'pl_namespace')
* @param string $subKey Field name to match the sub-level keys to (eg 'pl_title')
* @return string|bool SQL fragment, or false if no items in array
@@
-945,7
+950,7
@@
interface IDatabase {
* Example: $dbr->buildLike( 'My_page_title/', $dbr->anyString() ) returns
* a LIKE clause that searches for subpages of 'My page title'.
* Alternatively:
* Example: $dbr->buildLike( 'My_page_title/', $dbr->anyString() ) returns
* a LIKE clause that searches for subpages of 'My page title'.
* Alternatively:
- * $pattern =
array( 'My_page_title/', $dbr->anyString() )
;
+ * $pattern =
[ 'My_page_title/', $dbr->anyString() ]
;
* $query .= $dbr->buildLike( $pattern );
*
* @since 1.16
* $query .= $dbr->buildLike( $pattern );
*
* @since 1.16
@@
-1087,7
+1092,7
@@
interface IDatabase {
* to include in a join.
*
* @param array $varMap Must be an associative array of the form
* to include in a join.
*
* @param array $varMap Must be an associative array of the form
- *
array( 'dest1' => 'source1', ...)
. Source items may be literals
+ *
[ 'dest1' => 'source1', ... ]
. Source items may be literals
* rather than field names, but strings should be quoted with
* IDatabase::addQuotes()
*
* rather than field names, but strings should be quoted with
* IDatabase::addQuotes()
*
@@
-1216,13
+1221,22
@@
interface IDatabase {
public function getMasterPos();
/**
public function getMasterPos();
/**
- * Run an anonymous function as soon as the current transaction commits or rolls back.
+ * @return bool Whether the DB is marked as read-only server-side
+ * @since 1.28
+ */
+ public function serverIsReadOnly();
+
+ /**
+ * Run a callback as soon as the current transaction commits or rolls back.
* An error is thrown if no transaction is pending. Queries in the function will run in
* AUTO-COMMIT mode unless there are begin() calls. Callbacks must commit any transactions
* that they begin.
*
* This is useful for combining cooperative locks and DB transactions.
*
* An error is thrown if no transaction is pending. Queries in the function will run in
* AUTO-COMMIT mode unless there are begin() calls. Callbacks must commit any transactions
* that they begin.
*
* This is useful for combining cooperative locks and DB transactions.
*
+ * The callback takes one argument:
+ * How the transaction ended (IDatabase::TRIGGER_COMMIT or IDatabase::TRIGGER_ROLLBACK)
+ *
* @param callable $callback
* @return mixed
* @since 1.28
* @param callable $callback
* @return mixed
* @since 1.28
@@
-1230,7
+1244,7
@@
interface IDatabase {
public function onTransactionResolution( callable $callback );
/**
public function onTransactionResolution( callable $callback );
/**
- * Run a
n anonymous function
as soon as there is no transaction pending.
+ * Run a
callback
as soon as there is no transaction pending.
* If there is a transaction and it is rolled back, then the callback is cancelled.
* Queries in the function will run in AUTO-COMMIT mode unless there are begin() calls.
* Callbacks must commit any transactions that they begin.
* If there is a transaction and it is rolled back, then the callback is cancelled.
* Queries in the function will run in AUTO-COMMIT mode unless there are begin() calls.
* Callbacks must commit any transactions that they begin.
@@
-1242,15
+1256,19
@@
interface IDatabase {
*
* Updates will execute in the order they were enqueued.
*
*
* Updates will execute in the order they were enqueued.
*
+ * The callback takes one argument:
+ * How the transaction ended (IDatabase::TRIGGER_COMMIT or IDatabase::TRIGGER_IDLE)
+ *
* @param callable $callback
* @since 1.20
*/
public function onTransactionIdle( callable $callback );
/**
* @param callable $callback
* @since 1.20
*/
public function onTransactionIdle( callable $callback );
/**
- * Run a
n anonymous function
before the current transaction commits or now if there is none.
+ * Run a
callback
before the current transaction commits or now if there is none.
* If there is a transaction and it is rolled back, then the callback is cancelled.
* If there is a transaction and it is rolled back, then the callback is cancelled.
- * Callbacks must not start nor commit any transactions.
+ * Callbacks must not start nor commit any transactions. If no transaction is active,
+ * then a transaction will wrap the callback.
*
* This is useful for updates that easily cause deadlocks if locks are held too long
* but where atomicity is strongly desired for these updates and some related updates.
*
* This is useful for updates that easily cause deadlocks if locks are held too long
* but where atomicity is strongly desired for these updates and some related updates.