Add type hinting to functions

It's only reasonable to have proper type hinting here which might even help us to catch bugs.
This commit is contained in:
Lukas Reschke 2014-10-24 14:13:40 +02:00
parent 77b8e1543a
commit b3a04840b5
10 changed files with 66 additions and 72 deletions

View file

@ -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();

View file

@ -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();

View file

@ -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('<b>Note:</b> 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);

View file

@ -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));
}

View file

@ -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);

View file

@ -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)) {

View file

@ -19,7 +19,7 @@ class Manager {
/**
* @param Mount $mount
*/
public function addMount($mount) {
public function addMount(Mount $mount) {
$this->mounts[$mount->getMountPoint()] = $mount;
}

View file

@ -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;
}

View file

@ -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 {

View file

@ -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());