Use strict typing in base.php

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/35496/head
Côme Chilliet 2 years ago committed by Côme Chilliet (Rebase PR Action)
parent 884da19198
commit cf508c1e47

@ -1,4 +1,7 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@ -10,6 +13,7 @@
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Björn Schießle <bjoern@schiessle.org>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Côme Chilliet <come.chilliet@nextcloud.com>
* @author Damjan Georgievski <gdamjan@gmail.com>
* @author Daniel Kesselberg <mail@danielkesselberg.de>
* @author davidgumberg <davidnoizgumberg@gmail.com>
@ -62,15 +66,15 @@
*
*/
use OC\Encryption\HookManager;
use OC\EventDispatcher\SymfonyAdapter;
use OC\Files\Filesystem;
use OC\Share20\Hooks;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\UserRemovedEvent;
use OCP\ILogger;
use OCP\Server;
use OCP\Share;
use OC\Encryption\HookManager;
use OC\Files\Filesystem;
use OC\Share20\Hooks;
use OCP\User\Events\UserChangedEvent;
use function OCP\Log\logger;
@ -85,51 +89,46 @@ class OC {
/**
* Associative array for autoloading. classname => filename
*/
public static $CLASSPATH = [];
public static array $CLASSPATH = [];
/**
* The installation path for Nextcloud on the server (e.g. /srv/http/nextcloud)
*/
public static $SERVERROOT = '';
public static string $SERVERROOT = '';
/**
* the current request path relative to the Nextcloud root (e.g. files/index.php)
*/
private static $SUBURI = '';
private static string $SUBURI = '';
/**
* the Nextcloud root path for http requests (e.g. nextcloud/)
*/
public static $WEBROOT = '';
public static string $WEBROOT = '';
/**
* The installation path array of the apps folder on the server (e.g. /srv/http/nextcloud) 'path' and
* web path in 'url'
*/
public static $APPSROOTS = [];
public static array $APPSROOTS = [];
/**
* @var string
*/
public static $configDir;
public static string $configDir;
/**
* requested app
*/
public static $REQUESTEDAPP = '';
public static string $REQUESTEDAPP = '';
/**
* check if Nextcloud runs in cli mode
*/
public static $CLI = false;
public static bool $CLI = false;
/**
* @var \OC\Autoloader $loader
* @var \OC\Autoloader
*/
public static $loader = null;
/** @var \Composer\Autoload\ClassLoader $composerAutoloader */
/** @var \Composer\Autoload\ClassLoader */
public static $composerAutoloader = null;
/**
* @var \OC\Server
*/
/** @var \OC\Server */
public static $server = null;
/**
@ -141,7 +140,7 @@ class OC {
* @throws \RuntimeException when the 3rdparty directory is missing or
* the app path list is empty or contains an invalid path
*/
public static function initPaths() {
public static function initPaths(): void {
if (defined('PHPUNIT_CONFIG_DIR')) {
self::$configDir = OC::$SERVERROOT . '/' . PHPUNIT_CONFIG_DIR . '/';
} elseif (defined('PHPUNIT_RUN') and PHPUNIT_RUN and is_dir(OC::$SERVERROOT . '/tests/config/')) {
@ -153,15 +152,15 @@ class OC {
}
self::$config = new \OC\Config(self::$configDir);
OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT)));
OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"] ?? ''), strlen(OC::$SERVERROOT)));
/**
* FIXME: The following lines are required because we can't yet instantiate
* \OC::$server->getRequest() since \OC::$server does not yet exist.
*/
$params = [
'server' => [
'SCRIPT_NAME' => $_SERVER['SCRIPT_NAME'],
'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'],
'SCRIPT_NAME' => $_SERVER['SCRIPT_NAME'] ?? null,
'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'] ?? null,
],
];
$fakeRequest = new \OC\AppFramework\Http\Request(
@ -241,7 +240,7 @@ class OC {
);
}
public static function checkConfig() {
public static function checkConfig(): void {
$l = \OC::$server->getL10N('lib');
// Create config if it does not already exist
@ -275,7 +274,7 @@ class OC {
}
}
public static function checkInstalled(\OC\SystemConfig $systemConfig) {
public static function checkInstalled(\OC\SystemConfig $systemConfig): void {
if (defined('OC_CONSOLE')) {
return;
}
@ -291,7 +290,7 @@ class OC {
}
}
public static function checkMaintenanceMode(\OC\SystemConfig $systemConfig) {
public static function checkMaintenanceMode(\OC\SystemConfig $systemConfig): void {
// Allow ajax update script to execute without being stopped
if (((bool) $systemConfig->getValue('maintenance', false)) && OC::$SUBURI != '/core/ajax/update.php') {
// send http status 503
@ -310,10 +309,8 @@ class OC {
/**
* Prints the upgrade page
*
* @param \OC\SystemConfig $systemConfig
*/
private static function printUpgradePage(\OC\SystemConfig $systemConfig) {
private static function printUpgradePage(\OC\SystemConfig $systemConfig): void {
$disableWebUpdater = $systemConfig->getValue('upgrade.disable-web', false);
$tooBig = false;
if (!$disableWebUpdater) {
@ -415,7 +412,7 @@ class OC {
$tmpl->printPage();
}
public static function initSession() {
public static function initSession(): void {
if (self::$server->getRequest()->getServerProtocol() === 'https') {
ini_set('session.cookie_secure', 'true');
}
@ -464,10 +461,7 @@ class OC {
$session->close();
}
/**
* @return string
*/
private static function getSessionLifeTime() {
private static function getSessionLifeTime(): string {
return \OC::$server->getConfig()->getSystemValue('session_lifetime', 60 * 60 * 24);
}
@ -481,7 +475,7 @@ class OC {
/**
* Try to set some values to the required Nextcloud default
*/
public static function setRequiredIniValues() {
public static function setRequiredIniValues(): void {
@ini_set('default_charset', 'UTF-8');
@ini_set('gd.jpeg_ignore_warning', '1');
}
@ -489,7 +483,7 @@ class OC {
/**
* Send the same site cookies
*/
private static function sendSameSiteCookies() {
private static function sendSameSiteCookies(): void {
$cookieParams = session_get_cookie_params();
$secureCookie = ($cookieParams['secure'] === true) ? 'secure; ' : '';
$policies = [
@ -526,7 +520,7 @@ class OC {
* We use an additional cookie since we want to protect logout CSRF and
* also we can't directly interfere with PHP's session mechanism.
*/
private static function performSameSiteCookieProtection(\OCP\IConfig $config) {
private static function performSameSiteCookieProtection(\OCP\IConfig $config): void {
$request = \OC::$server->getRequest();
// Some user agents are notorious and don't really properly follow HTTP
@ -574,7 +568,7 @@ class OC {
}
}
public static function init() {
public static function init(): void {
// calculate the root directories
OC::$SERVERROOT = str_replace("\\", '/', substr(__DIR__, 0, -4));
@ -680,7 +674,7 @@ class OC {
}
/** @var \OC\AppFramework\Bootstrap\Coordinator $bootstrapCoordinator */
$bootstrapCoordinator = \OC::$server->query(\OC\AppFramework\Bootstrap\Coordinator::class);
$bootstrapCoordinator = \OC::$server->get(\OC\AppFramework\Bootstrap\Coordinator::class);
$bootstrapCoordinator->runInitialRegistration();
$eventLogger->start('init_session', 'Initialize session');
@ -843,10 +837,9 @@ class OC {
/**
* register hooks for the cleanup of cache and bruteforce protection
*/
public static function registerCleanupHooks(\OC\SystemConfig $systemConfig) {
public static function registerCleanupHooks(\OC\SystemConfig $systemConfig): void {
//don't try to do this before we are properly setup
if ($systemConfig->getValue('installed', false) && !\OCP\Util::needUpgrade()) {
// NOTE: This will be replaced to use OCP
$userSession = self::$server->getUserSession();
$userSession->listen('\OC\User', 'postLogin', function () use ($userSession) {
@ -879,7 +872,7 @@ class OC {
}
}
private static function registerEncryptionWrapperAndHooks() {
private static function registerEncryptionWrapperAndHooks(): void {
$manager = self::$server->getEncryptionManager();
\OCP\Util::connectHook('OC_Filesystem', 'preSetup', $manager, 'setupStorage');
@ -892,13 +885,13 @@ class OC {
}
}
private static function registerAccountHooks() {
private static function registerAccountHooks(): void {
/** @var IEventDispatcher $dispatcher */
$dispatcher = \OC::$server->get(IEventDispatcher::class);
$dispatcher->addServiceListener(UserChangedEvent::class, \OC\Accounts\Hooks::class);
}
private static function registerAppRestrictionsHooks() {
private static function registerAppRestrictionsHooks(): void {
/** @var \OC\Group\Manager $groupManager */
$groupManager = self::$server->query(\OCP\IGroupManager::class);
$groupManager->listen('\OC\Group', 'postDelete', function (\OCP\IGroup $group) {
@ -921,18 +914,18 @@ class OC {
});
}
private static function registerResourceCollectionHooks() {
private static function registerResourceCollectionHooks(): void {
\OC\Collaboration\Resources\Listener::register(Server::get(SymfonyAdapter::class), Server::get(IEventDispatcher::class));
}
private static function registerFileReferenceEventListener() {
private static function registerFileReferenceEventListener(): void {
\OC\Collaboration\Reference\File\FileReferenceEventListener::register(Server::get(IEventDispatcher::class));
}
/**
* register hooks for sharing
*/
public static function registerShareHooks(\OC\SystemConfig $systemConfig) {
public static function registerShareHooks(\OC\SystemConfig $systemConfig): void {
if ($systemConfig->getValue('installed')) {
OC_Hook::connect('OC_User', 'post_deleteUser', Hooks::class, 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_deleteGroup', Hooks::class, 'post_deleteGroup');
@ -943,7 +936,7 @@ class OC {
}
}
protected static function registerAutoloaderCache(\OC\SystemConfig $systemConfig) {
protected static function registerAutoloaderCache(\OC\SystemConfig $systemConfig): void {
// The class loader takes an optional low-latency cache, which MUST be
// namespaced. The instanceid is used for namespacing, but might be
// unavailable at this point. Furthermore, it might not be possible to
@ -1133,7 +1126,7 @@ class OC {
return false;
}
protected static function handleAuthHeaders() {
protected static function handleAuthHeaders(): void {
//copy http auth headers for apache+php-fcgid work around
if (isset($_SERVER['HTTP_XAUTHORIZATION']) && !isset($_SERVER['HTTP_AUTHORIZATION'])) {
$_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['HTTP_XAUTHORIZATION'];

@ -50,7 +50,6 @@ use OC\Security\TrustedDomainHelper;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IRequestId;
use OCP\Security\ICrypto;
use Symfony\Component\HttpFoundation\IpUtils;
/**
@ -79,10 +78,10 @@ class Request implements \ArrayAccess, \Countable, IRequest {
public const USER_AGENT_FREEBOX = '#^Mozilla/5\.0$#';
public const REGEX_LOCALHOST = '/^(127\.0\.0\.1|localhost|\[::1\])$/';
protected $inputStream;
protected string $inputStream;
protected $content;
protected $items = [];
protected $allowedKeys = [
protected array $items = [];
protected array $allowedKeys = [
'get',
'post',
'files',
@ -94,17 +93,11 @@ class Request implements \ArrayAccess, \Countable, IRequest {
'method',
'requesttoken',
];
/** @var RequestId */
protected $requestId;
/** @var IConfig */
protected $config;
/** @var ICrypto */
protected $crypto;
/** @var CsrfTokenManager|null */
protected $csrfTokenManager;
protected IRequestId $requestId;
protected IConfig $config;
protected ?CsrfTokenManager $csrfTokenManager;
/** @var bool */
protected $contentDecoded = false;
protected bool $contentDecoded = false;
/**
* @param array $vars An associative array with the following optional values:
@ -139,9 +132,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
}
foreach ($this->allowedKeys as $name) {
$this->items[$name] = isset($vars[$name])
? $vars[$name]
: [];
$this->items[$name] = $vars[$name] ?? [];
}
$this->items['parameters'] = array_merge(

Loading…
Cancel
Save