It's only reasonable to have proper type hinting here which might even help us to catch bugs.tags/v8.0.0alpha1
@@ -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(); |
@@ -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(); |
@@ -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); |
@@ -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)); | |||
} |
@@ -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); |
@@ -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)) { |
@@ -19,7 +19,7 @@ class Manager { | |||
/** | |||
* @param Mount $mount | |||
*/ | |||
public function addMount($mount) { | |||
public function addMount(Mount $mount) { | |||
$this->mounts[$mount->getMountPoint()] = $mount; | |||
} | |||
@@ -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; | |||
} |
@@ -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 { |
@@ -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()); |