wiki.techinc.nl/load.php
Amir Sarabadani 788d2f0a28 Centralize logic behind building ChronologyProtector object
Building blocks of CP don't really need to depend on LBF. Even the
config value for CP stash type is also different. But it's being passed
around along the rest of LB/LBF config and possibly down to the DB
object.

This is making the code much harder to understand, adds more coupling
than it needs to, and it's making pieces that don't need to rely on LFB
(like load.php) actually depend on LBF just to disable CP.

This clean up also helps improving DI of LB/LBF and building of DB
objects down the road.

Bug: T275713
Change-Id: Ic27269a1f1190ee7a03c6a422ada7ff293c3cab1
2023-08-30 18:44:09 +00:00

62 lines
2.1 KiB
PHP

<?php
/**
* The web entry point for @ref ResourceLoader, which serves static CSS/JavaScript
* via @ref MediaWiki\ResourceLoader\Module Module subclasses.
*
* 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 entrypoint
* @ingroup ResourceLoader
* @author Roan Kattouw
* @author Trevor Parscal
*/
use MediaWiki\MediaWikiServices;
use MediaWiki\ResourceLoader\Context;
// This endpoint is supposed to be independent of request cookies and other
// details of the session. Enforce this constraint with respect to session use.
define( 'MW_NO_SESSION', 1 );
define( 'MW_ENTRY_POINT', 'load' );
require __DIR__ . '/includes/WebStart.php';
wfLoadMain();
function wfLoadMain() {
global $wgRequest;
$services = MediaWikiServices::getInstance();
// Disable ChronologyProtector so that we don't wait for unrelated MediaWiki
// writes when getting database connections for ResourceLoader. (T192611)
$services->getChronologyProtector()->setEnabled( false );
$resourceLoader = $services->getResourceLoader();
$context = new Context( $resourceLoader, $wgRequest );
// Respond to ResourceLoader request
$resourceLoader->respond( $context );
// Append any visible profiling data in a manner appropriate for the Content-Type
$profiler = Profiler::instance();
$profiler->setAllowOutput();
$profiler->logDataPageOutputOnly();
$mediawiki = new MediaWiki();
$mediawiki->doPostOutputShutdown();
}