Implicitly marking parameter $... as nullable is deprecated in php8.4, the explicit nullable type must be used instead Created with autofix from Ide15839e98a6229c22584d1c1c88c690982e1d7a Break one long line in SpecialPage.php Bug: T376276 Change-Id: I807257b2ba1ab2744ab74d9572c9c3d3ac2a968e
109 lines
3.5 KiB
PHP
109 lines
3.5 KiB
PHP
<?php
|
|
/**
|
|
* MediaWiki\Session entry point interface
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
* @ingroup Session
|
|
*/
|
|
|
|
namespace MediaWiki\Session;
|
|
|
|
use MediaWiki\Request\WebRequest;
|
|
use MediaWiki\User\User;
|
|
use Psr\Log\LoggerAwareInterface;
|
|
|
|
/**
|
|
* This exists to make IDEs happy, so they don't see the
|
|
* internal-but-required-to-be-public methods on SessionManager.
|
|
*
|
|
* @ingroup Session
|
|
* @since 1.27
|
|
*/
|
|
interface SessionManagerInterface extends LoggerAwareInterface {
|
|
/**
|
|
* Fetch the session for a request (or a new empty session if none is
|
|
* attached to it)
|
|
*
|
|
* @note You probably want to use $request->getSession() instead. It's more
|
|
* efficient and doesn't break FauxRequests or sessions that were changed
|
|
* by $this->getSessionById() or $this->getEmptySession().
|
|
* @param WebRequest $request Any existing associated session will be reset
|
|
* to the session corresponding to the data in the request itself.
|
|
* @return Session
|
|
* @throws \OverflowException if there are multiple sessions tied for top
|
|
* priority in the request. Exception has a property "sessionInfos"
|
|
* holding the SessionInfo objects for the sessions involved.
|
|
*/
|
|
public function getSessionForRequest( WebRequest $request );
|
|
|
|
/**
|
|
* Fetch a session by ID
|
|
*
|
|
* @param string $id
|
|
* @param bool $create If no session exists for $id, try to create a new one.
|
|
* May still return null if a session for $id exists but cannot be loaded.
|
|
* @param WebRequest|null $request Corresponding request. Any existing
|
|
* session associated with this WebRequest object will be overwritten.
|
|
* @return Session|null
|
|
*/
|
|
public function getSessionById( $id, $create = false, ?WebRequest $request = null );
|
|
|
|
/**
|
|
* Create a new, empty session
|
|
*
|
|
* The first provider configured that is able to provide an empty session
|
|
* will be used.
|
|
*
|
|
* @param WebRequest|null $request Corresponding request. Any existing
|
|
* session associated with this WebRequest object will be overwritten.
|
|
* @return Session
|
|
*/
|
|
public function getEmptySession( ?WebRequest $request = null );
|
|
|
|
/**
|
|
* Invalidate sessions for a user
|
|
*
|
|
* After calling this, existing sessions should be invalid. For mutable
|
|
* session providers, this generally means the user has to log in again;
|
|
* for immutable providers, it generally means the loss of session data.
|
|
*
|
|
* @param User $user
|
|
*/
|
|
public function invalidateSessionsForUser( User $user );
|
|
|
|
/**
|
|
* Return the HTTP headers that need varying on.
|
|
*
|
|
* The return value is such that someone could theoretically do this:
|
|
* @code
|
|
* foreach ( $provider->getVaryHeaders() as $header => $_ ) {
|
|
* $outputPage->addVaryHeader( $header );
|
|
* }
|
|
* @endcode
|
|
*
|
|
* @return array<string,null>
|
|
*/
|
|
public function getVaryHeaders();
|
|
|
|
/**
|
|
* Return the list of cookies that need varying on.
|
|
* @return string[]
|
|
*/
|
|
public function getVaryCookies();
|
|
|
|
}
|