Merge pull request #8334 from nextcloud/lib-strict-typing

Make lib/autoloader.php strictly typed and p…
This commit is contained in:
Roeland Jago Douma 2018-02-19 10:50:38 +01:00 committed by GitHub
commit bffdcd76f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 6 deletions

View File

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1);
/** /**
* @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, ownCloud, Inc.
* *
@ -63,7 +64,7 @@ class Autoloader {
* *
* @param string $root * @param string $root
*/ */
public function addValidRoot($root) { public function addValidRoot(string $root) {
$root = stream_resolve_include_path($root); $root = stream_resolve_include_path($root);
$this->validRoots[$root] = true; $this->validRoots[$root] = true;
} }
@ -86,12 +87,12 @@ class Autoloader {
* get the possible paths for a class * get the possible paths for a class
* *
* @param string $class * @param string $class
* @return array|bool an array of possible paths or false if the class is not part of ownCloud * @return array an array of possible paths
*/ */
public function findClass($class) { public function findClass(string $class): array {
$class = trim($class, '\\'); $class = trim($class, '\\');
$paths = array(); $paths = [];
if ($this->useGlobalClassPath && array_key_exists($class, \OC::$CLASSPATH)) { if ($this->useGlobalClassPath && array_key_exists($class, \OC::$CLASSPATH)) {
$paths[] = \OC::$CLASSPATH[$class]; $paths[] = \OC::$CLASSPATH[$class];
/** /**
@ -124,8 +125,9 @@ class Autoloader {
/** /**
* @param string $fullPath * @param string $fullPath
* @return bool * @return bool
* @throws AutoloadNotAllowedException
*/ */
protected function isValidPath($fullPath) { protected function isValidPath(string $fullPath): bool {
foreach ($this->validRoots as $root => $true) { foreach ($this->validRoots as $root => $true) {
if (substr($fullPath, 0, strlen($root) + 1) === $root . '/') { if (substr($fullPath, 0, strlen($root) + 1) === $root . '/') {
return true; return true;
@ -139,8 +141,9 @@ class Autoloader {
* *
* @param string $class * @param string $class
* @return bool * @return bool
* @throws AutoloadNotAllowedException
*/ */
public function load($class) { public function load(string $class): bool {
$pathsToRequire = null; $pathsToRequire = null;
if ($this->memoryCache) { if ($this->memoryCache) {
$pathsToRequire = $this->memoryCache->get($class); $pathsToRequire = $this->memoryCache->get($class);