From b3a04840b54464457298807d6609d525d68d8953 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Fri, 24 Oct 2014 14:13:40 +0200 Subject: [PATCH] Add type hinting to functions It's only reasonable to have proper type hinting here which might even help us to catch bugs. --- apps/files/lib/helper.php | 11 +++-- apps/files_encryption/lib/helper.php | 10 ++-- apps/files_external/lib/config.php | 2 +- apps/files_trashbin/lib/trashbin.php | 35 ++++++++++---- lib/private/db/mdb2schemamanager.php | 2 +- lib/private/files.php | 2 +- lib/private/files/mount/manager.php | 2 +- lib/private/preview.php | 2 +- lib/private/server.php | 68 +++++++++------------------- lib/private/util.php | 4 +- 10 files changed, 66 insertions(+), 72 deletions(-) diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index e4bfcb4e9e..aa5a2f8c68 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -8,6 +8,8 @@ namespace OCA\Files; +use OCP\Files\FileInfo; + /** * Helper class for manipulating file information */ @@ -58,7 +60,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareFileNames($a, $b) { + public static function compareFileNames(FileInfo $a, FileInfo $b) { $aType = $a->getType(); $bType = $b->getType(); if ($aType === 'dir' and $bType !== 'dir') { @@ -77,7 +79,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareTimestamp($a, $b) { + public static function compareTimestamp(FileInfo $a, FileInfo $b) { $aTime = $a->getMTime(); $bTime = $b->getMTime(); return $aTime - $bTime; @@ -90,7 +92,7 @@ class Helper * @param \OCP\Files\FileInfo $b file * @return int -1 if $a must come before $b, 1 otherwise */ - public static function compareSize($a, $b) { + public static function compareSize(FileInfo $a, FileInfo $b) { $aSize = $a->getSize(); $bSize = $b->getSize(); return ($aSize < $bSize) ? -1 : 1; @@ -102,7 +104,7 @@ class Helper * @param \OCP\Files\FileInfo $i * @return array formatted file info */ - public static function formatFileInfo($i) { + public static function formatFileInfo(FileInfo $i) { $entry = array(); $entry['id'] = $i['fileid']; @@ -147,6 +149,7 @@ class Helper /** * Format file info for JSON * @param \OCP\Files\FileInfo[] $fileInfos file infos + * @return array */ public static function formatFileInfos($fileInfos) { $files = array(); diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 6f4eb4aaf3..53c380ab2b 100644 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -89,7 +89,7 @@ class Helper { * @param string $password * @return bool */ - public static function setupUser($util, $password) { + public static function setupUser(Util $util, $password) { // Check files_encryption infrastructure is ready for action if (!$util->ready()) { @@ -333,7 +333,7 @@ class Helper { * @param string $path * @param \OC\Files\View $view */ - public static function mkdirr($path, $view) { + public static function mkdirr($path, \OC\Files\View $view) { $dirname = \OC\Files\Filesystem::normalizePath(dirname($path)); $dirParts = explode('/', $dirname); $dir = ""; @@ -348,8 +348,10 @@ class Helper { /** * redirect to a error page * @param Session $session + * @param int|null $errorCode + * @throws \Exception */ - public static function redirectToErrorPage($session, $errorCode = null) { + public static function redirectToErrorPage(Session $session, $errorCode = null) { if ($errorCode === null) { $init = $session->getInitialized(); @@ -439,7 +441,7 @@ class Helper { * @param \OC\Files\View $rootView root view, relative to data/ * @return array list of share key files, path relative to data/$user */ - public static function findShareKeys($filePath, $shareKeyPath, $rootView) { + public static function findShareKeys($filePath, $shareKeyPath, \OC\Files\View $rootView) { $result = array(); $user = \OCP\User::getUser(); diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index 5378137e1d..fa44e446d9 100644 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -740,7 +740,7 @@ class OC_Mount_Config { * @param string $backend * @return string */ - private static function getSingleDependencyMessage($l, $module, $backend) { + private static function getSingleDependencyMessage(OC_L10N $l, $module, $backend) { switch (strtolower($module)) { case 'curl': return $l->t('Note: The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.', $backend); diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php index 6396229641..3d90791108 100644 --- a/apps/files_trashbin/lib/trashbin.php +++ b/apps/files_trashbin/lib/trashbin.php @@ -434,10 +434,10 @@ class Trashbin { * @param string $filename name of file once it was deleted * @param string $uniqueFilename new file name to restore the file without overwriting existing files * @param string $location location if file - * @param int $timestamp deleteion time - * + * @param int $timestamp deletion time + * @return bool */ - private static function restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp) { + private static function restoreVersions(\OC\Files\View $view, $file, $filename, $uniqueFilename, $location, $timestamp) { if (\OCP\App::isEnabled('files_versions')) { // disable proxy to prevent recursive calls @@ -488,10 +488,10 @@ class Trashbin { * @param string $filename name of file * @param string $uniqueFilename new file name to restore the file without overwriting existing files * @param string $location location of file - * @param int $timestamp deleteion time - * + * @param int $timestamp deletion time + * @return bool */ - private static function restoreEncryptionKeys($view, $file, $filename, $uniqueFilename, $location, $timestamp) { + private static function restoreEncryptionKeys(\OC\Files\View $view, $file, $filename, $uniqueFilename, $location, $timestamp) { // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!) if (\OCP\App::isEnabled('files_encryption')) { $user = \OCP\User::getUser(); @@ -639,8 +639,12 @@ class Trashbin { /** * @param \OC\Files\View $view + * @param $file + * @param $filename + * @param $timestamp + * @return int */ - private static function deleteVersions($view, $file, $filename, $timestamp) { + private static function deleteVersions(\OC\Files\View $view, $file, $filename, $timestamp) { $size = 0; if (\OCP\App::isEnabled('files_versions')) { $user = \OCP\User::getUser(); @@ -664,8 +668,12 @@ class Trashbin { /** * @param \OC\Files\View $view + * @param $file + * @param $filename + * @param $timestamp + * @return int */ - private static function deleteEncryptionKeys($view, $file, $filename, $timestamp) { + private static function deleteEncryptionKeys(\OC\Files\View $view, $file, $filename, $timestamp) { $size = 0; if (\OCP\App::isEnabled('files_encryption')) { $user = \OCP\User::getUser(); @@ -879,8 +887,10 @@ class Trashbin { * @param string $source source path, relative to the users files directory * @param string $destination destination path relative to the users root directoy * @param \OC\Files\View $view file view for the users root directory + * @return int + * @throws Exceptions\CopyRecursiveException */ - private static function copy_recursive($source, $destination, $view) { + private static function copy_recursive($source, $destination, \OC\Files\View $view) { $size = 0; if ($view->is_dir($source)) { $view->mkdir($destination); @@ -955,7 +965,7 @@ class Trashbin { * @param \OC\Files\View $view filesystem view relative to users root directory * @return string with unique extension */ - private static function getUniqueFilename($location, $filename, $view) { + private static function getUniqueFilename($location, $filename, \OC\Files\View $view) { $ext = pathinfo($filename, PATHINFO_EXTENSION); $name = pathinfo($filename, PATHINFO_FILENAME); $l = \OC::$server->getL10N('files_trashbin'); @@ -1036,6 +1046,7 @@ class Trashbin { /** * check if trash bin is empty for a given user * @param string $user + * @return bool */ public static function isEmpty($user) { @@ -1050,6 +1061,10 @@ class Trashbin { return true; } + /** + * @param $path + * @return string + */ public static function preview_icon($path) { return \OC_Helper::linkToRoute('core_ajax_trashbin_preview', array('x' => 36, 'y' => 36, 'file' => $path)); } diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index 3c367f144d..1f2dbbe70d 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -147,7 +147,7 @@ class MDB2SchemaManager { * @param \Doctrine\DBAL\Schema\Schema $schema * @return bool */ - private function executeSchemaChange($schema) { + private function executeSchemaChange(\Doctrine\DBAL\Schema\Schema $schema) { $this->conn->beginTransaction(); foreach ($schema->toSql($this->conn->getDatabasePlatform()) as $sql) { $this->conn->query($sql); diff --git a/lib/private/files.php b/lib/private/files.php index a983f6f32f..571d3215ca 100644 --- a/lib/private/files.php +++ b/lib/private/files.php @@ -195,7 +195,7 @@ class OC_Files { * @param ZipStreamer $zip * @param string $internalDir */ - public static function zipAddDir($dir, $zip, $internalDir='') { + public static function zipAddDir($dir, ZipStreamer $zip, $internalDir='') { $dirname=basename($dir); $rootDir = $internalDir.$dirname; if (!empty($rootDir)) { diff --git a/lib/private/files/mount/manager.php b/lib/private/files/mount/manager.php index e5180cfe17..0ccf42941d 100644 --- a/lib/private/files/mount/manager.php +++ b/lib/private/files/mount/manager.php @@ -19,7 +19,7 @@ class Manager { /** * @param Mount $mount */ - public function addMount($mount) { + public function addMount(Mount $mount) { $this->mounts[$mount->getMountPoint()] = $mount; } diff --git a/lib/private/preview.php b/lib/private/preview.php index f8b19f11cb..dbbe173bf8 100644 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -779,7 +779,7 @@ class Preview { * @param \OC\Files\FileInfo $file * @return bool */ - public static function isAvailable($file) { + public static function isAvailable(\OC\Files\FileInfo $file) { if (!\OC_Config::getValue('enable_previews', true)) { return false; } diff --git a/lib/private/server.php b/lib/private/server.php index b0d63af155..ac0eb7b4cf 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -72,15 +72,15 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('PreviewManager', function ($c) { return new PreviewManager(); }); - $this->registerService('TagMapper', function($c) { + $this->registerService('TagMapper', function(Server $c) { return new TagMapper($c->getDb()); }); - $this->registerService('TagManager', function ($c) { + $this->registerService('TagManager', function (Server $c) { $tagMapper = $c->query('TagMapper'); $user = \OC_User::getUser(); return new TagManager($tagMapper, $user); }); - $this->registerService('RootFolder', function ($c) { + $this->registerService('RootFolder', function (Server $c) { // TODO: get user and user manager from container as well $user = \OC_User::getUser(); /** @var $c SimpleContainer */ @@ -90,28 +90,16 @@ class Server extends SimpleContainer implements IServerContainer { $view = new View(); return new Root($manager, $view, $user); }); - $this->registerService('UserManager', function ($c) { - /** - * @var SimpleContainer $c - * @var \OC\AllConfig $config - */ - $config = $c->query('AllConfig'); + $this->registerService('UserManager', function (Server $c) { + $config = $c->getConfig(); return new \OC\User\Manager($config); }); - $this->registerService('GroupManager', function ($c) { - /** - * @var SimpleContainer $c - * @var \OC\User\Manager $userManager - */ - $userManager = $c->query('UserManager'); + $this->registerService('GroupManager', function (Server $c) { + $userManager = $c->getUserManager(); return new \OC\Group\Manager($userManager); }); - $this->registerService('UserSession', function ($c) { - /** - * @var SimpleContainer $c - * @var \OC\User\Manager $manager - */ - $manager = $c->query('UserManager'); + $this->registerService('UserSession', function (Server $c) { + $manager = $c->getUserManager(); $userSession = new \OC\User\Session($manager, new \OC\Session\Memory('')); $userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) { \OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password)); @@ -160,9 +148,8 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('L10NFactory', function ($c) { return new \OC\L10N\Factory(); }); - $this->registerService('URLGenerator', function ($c) { - /** @var $c SimpleContainer */ - $config = $c->query('AllConfig'); + $this->registerService('URLGenerator', function (Server $c) { + $config = $c->getConfig(); return new \OC\URLGenerator($config); }); $this->registerService('AppHelper', function ($c) { @@ -181,7 +168,7 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('AvatarManager', function ($c) { return new AvatarManager(); }); - $this->registerService('Logger', function ($c) { + $this->registerService('Logger', function (Server $c) { /** @var $c SimpleContainer */ $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud'); $logger = 'OC_Log_' . ucfirst($logClass); @@ -189,17 +176,11 @@ class Server extends SimpleContainer implements IServerContainer { return new Log($logger); }); - $this->registerService('JobList', function ($c) { - /** - * @var Server $c - */ + $this->registerService('JobList', function (Server $c) { $config = $c->getConfig(); return new \OC\BackgroundJob\JobList($c->getDatabaseConnection(), $config); }); - $this->registerService('Router', function ($c) { - /** - * @var Server $c - */ + $this->registerService('Router', function (Server $c) { $cacheFactory = $c->getMemCacheFactory(); if ($cacheFactory->isAvailable()) { $router = new \OC\Route\CachingRouter($cacheFactory->create('route')); @@ -214,13 +195,10 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('SecureRandom', function ($c) { return new SecureRandom(); }); - $this->registerService('Crypto', function ($c) { - return new Crypto(\OC::$server->getConfig(), \OC::$server->getSecureRandom()); + $this->registerService('Crypto', function (Server $c) { + return new Crypto($c->getConfig(), $c->getSecureRandom()); }); - $this->registerService('DatabaseConnection', function ($c) { - /** - * @var Server $c - */ + $this->registerService('DatabaseConnection', function (Server $c) { $factory = new \OC\DB\ConnectionFactory(); $type = $c->getConfig()->getSystemValue('dbtype', 'sqlite'); if (!$factory->isValidType($type)) { @@ -231,18 +209,14 @@ class Server extends SimpleContainer implements IServerContainer { $connection->getConfiguration()->setSQLLogger($c->getQueryLogger()); return $connection; }); - $this->registerService('Db', function ($c) { - /** - * @var Server $c - */ + $this->registerService('Db', function (Server $c) { return new Db($c->getDatabaseConnection()); }); - $this->registerService('HTTPHelper', function (SimpleContainer $c) { - $config = $c->query('AllConfig'); + $this->registerService('HTTPHelper', function (Server $c) { + $config = $c->getConfig(); return new HTTPHelper($config); }); - $this->registerService('EventLogger', function ($c) { - /** @var Server $c */ + $this->registerService('EventLogger', function (Server $c) { if (defined('DEBUG') and DEBUG) { return new EventLogger(); } else { diff --git a/lib/private/util.php b/lib/private/util.php index 858138f58f..d600f8a5e6 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -420,7 +420,7 @@ class OC_Util { * @param \OCP\IConfig $config * @return array arrays with error messages and hints */ - public static function checkServer($config) { + public static function checkServer(\OCP\IConfig $config) { $l = \OC::$server->getL10N('lib'); $errors = array(); $CONFIG_DATADIRECTORY = $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data'); @@ -1309,7 +1309,7 @@ class OC_Util { * @param \OCP\IConfig $config * @return bool whether the core or any app needs an upgrade */ - public static function needUpgrade($config) { + public static function needUpgrade(\OCP\IConfig $config) { if ($config->getSystemValue('installed', false)) { $installedVersion = $config->getSystemValue('version', '0.0.0'); $currentVersion = implode('.', OC_Util::getVersion());