diff --git a/apps/dav/appinfo/app.php b/apps/dav/appinfo/app.php index 8eb685e4ff2d..b013866be9e1 100644 --- a/apps/dav/appinfo/app.php +++ b/apps/dav/appinfo/app.php @@ -22,6 +22,7 @@ */ use OCA\DAV\AppInfo\Application; +use OCA\DAV\CardDAV\CardDavBackend; use Symfony\Component\EventDispatcher\GenericEvent; $app = new Application(); @@ -35,8 +36,8 @@ $eventDispatcher->addListener('OCP\Federation\TrustedServerEvent::remove', function(GenericEvent $event) use ($app) { - /** @var \OCA\DAV\CardDAV\CardDavBackend $cardDavBackend */ - $cardDavBackend = $app->getContainer()->query('CardDavBackend'); + /** @var CardDavBackend $cardDavBackend */ + $cardDavBackend = $app->getContainer()->query(CardDavBackend::class); $addressBookUri = $event->getSubject(); $addressBook = $cardDavBackend->getAddressBooksByUri('principals/system/system', $addressBookUri); if (!is_null($addressBook)) { diff --git a/apps/dav/appinfo/register_command.php b/apps/dav/appinfo/register_command.php index 653a57c39b40..a45ca51640ac 100644 --- a/apps/dav/appinfo/register_command.php +++ b/apps/dav/appinfo/register_command.php @@ -20,6 +20,8 @@ * */ use OCA\DAV\AppInfo\Application; +use OCA\DAV\CalDAV\BirthdayService; +use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\Command\CreateAddressBook; use OCA\DAV\Command\CreateCalendar; use OCA\DAV\Command\SyncBirthdayCalendar; @@ -33,6 +35,6 @@ /** @var Symfony\Component\Console\Application $application */ $application->add(new CreateCalendar($userManager, $groupManager, $dbConnection)); -$application->add(new CreateAddressBook($userManager, $app->getContainer()->query('CardDavBackend'))); +$application->add(new CreateAddressBook($userManager, $app->getContainer()->query(CardDavBackend::class))); $application->add(new SyncSystemAddressBook($app->getSyncService())); -$application->add(new SyncBirthdayCalendar($userManager, $app->getContainer()->query('BirthdayService'))); +$application->add(new SyncBirthdayCalendar($userManager, $app->getContainer()->query(BirthdayService::class))); diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php index 4051e3d82050..ce078ef3101b 100644 --- a/apps/dav/lib/AppInfo/Application.php +++ b/apps/dav/lib/AppInfo/Application.php @@ -24,15 +24,10 @@ namespace OCA\DAV\AppInfo; use OCA\DAV\CalDAV\BirthdayService; -use OCA\DAV\CalDAV\CalDavBackend; -use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\CardDAV\ContactsManager; use OCA\DAV\CardDAV\SyncService; -use OCA\DAV\Connector\Sabre\Principal; -use OCA\DAV\DAV\GroupPrincipalBackend; use OCA\DAV\HookManager; use \OCP\AppFramework\App; -use OCP\AppFramework\IAppContainer; use OCP\Contacts\IManager; use Symfony\Component\EventDispatcher\GenericEvent; @@ -45,71 +40,6 @@ class Application extends App { */ public function __construct (array $urlParams=array()) { parent::__construct('dav', $urlParams); - - $container = $this->getContainer(); - $container->registerService('ContactsManager', function($c) { - /** @var IAppContainer $c */ - return new ContactsManager( - $c->query('CardDavBackend') - ); - }); - - $container->registerService('HookManager', function($c) { - /** @var IAppContainer $c */ - return new HookManager( - $c->getServer()->getUserManager(), - $c->query('SyncService'), - $c->query('CalDavBackend'), - $c->query('CardDavBackend'), - $c->getServer()->getL10N('dav') - ); - }); - - $container->registerService('SyncService', function($c) { - /** @var IAppContainer $c */ - return new SyncService( - $c->query('CardDavBackend'), - $c->getServer()->getUserManager(), - $c->getServer()->getLogger() - ); - }); - - $container->registerService('CardDavBackend', function($c) { - /** @var IAppContainer $c */ - $db = $c->getServer()->getDatabaseConnection(); - $dispatcher = $c->getServer()->getEventDispatcher(); - $principal = new Principal( - $c->getServer()->getUserManager(), - $c->getServer()->getGroupManager() - ); - return new CardDavBackend($db, $principal, $dispatcher); - }); - - $container->registerService('CalDavBackend', function($c) { - /** @var IAppContainer $c */ - $db = $c->getServer()->getDatabaseConnection(); - $config = $c->getServer()->getConfig(); - $random = $c->getServer()->getSecureRandom(); - - $principal = new Principal( - $c->getServer()->getUserManager(), - $c->getServer()->getGroupManager() - ); - return new CalDavBackend($db, $principal, $config, $random); - }); - - $container->registerService('BirthdayService', function($c) { - /** @var IAppContainer $c */ - $g = new GroupPrincipalBackend( - $c->getServer()->getGroupManager() - ); - return new BirthdayService( - $c->query('CalDavBackend'), - $c->query('CardDavBackend'), - $g - ); - }); - } /** @@ -118,20 +48,20 @@ public function __construct (array $urlParams=array()) { */ public function setupContactsProvider(IManager $contactsManager, $userID) { /** @var ContactsManager $cm */ - $cm = $this->getContainer()->query('ContactsManager'); + $cm = $this->getContainer()->query(ContactsManager::class); $urlGenerator = $this->getContainer()->getServer()->getURLGenerator(); $cm->setupContactsProvider($contactsManager, $userID, $urlGenerator); } public function registerHooks() { /** @var HookManager $hm */ - $hm = $this->getContainer()->query('HookManager'); + $hm = $this->getContainer()->query(HookManager::class); $hm->setup(); $listener = function($event) { if ($event instanceof GenericEvent) { /** @var BirthdayService $b */ - $b = $this->getContainer()->query('BirthdayService'); + $b = $this->getContainer()->query(BirthdayService::class); $b->onCardChanged( $event->getArgument('addressBookId'), $event->getArgument('cardUri'), @@ -146,7 +76,7 @@ public function registerHooks() { $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', function($event) { if ($event instanceof GenericEvent) { /** @var BirthdayService $b */ - $b = $this->getContainer()->query('BirthdayService'); + $b = $this->getContainer()->query(BirthdayService::class); $b->onCardDeleted( $event->getArgument('addressBookId'), $event->getArgument('cardUri') @@ -156,7 +86,7 @@ public function registerHooks() { } public function getSyncService() { - return $this->getContainer()->query('SyncService'); + return $this->getContainer()->query(SyncService::class); } } diff --git a/apps/dav/lib/CalDAV/BirthdayService.php b/apps/dav/lib/CalDAV/BirthdayService.php index 75b937ecd6fb..88afa73971dd 100644 --- a/apps/dav/lib/CalDAV/BirthdayService.php +++ b/apps/dav/lib/CalDAV/BirthdayService.php @@ -42,7 +42,7 @@ class BirthdayService { * @param CardDavBackend $cardDavBackEnd * @param GroupPrincipalBackend $principalBackend */ - public function __construct($calDavBackEnd, $cardDavBackEnd, $principalBackend) { + public function __construct(CalDavBackend $calDavBackEnd, CardDavBackend $cardDavBackEnd, GroupPrincipalBackend $principalBackend) { $this->calDavBackEnd = $calDavBackEnd; $this->cardDavBackEnd = $cardDavBackEnd; $this->principalBackend = $principalBackend; diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php index 2e4c57313c5d..f7d8d26fb506 100644 --- a/apps/dav/lib/HookManager.php +++ b/apps/dav/lib/HookManager.php @@ -20,11 +20,11 @@ */ namespace OCA\DAV; -use OC\L10N\L10N; use OCA\DAV\CalDAV\BirthdayService; use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\CardDAV\SyncService; +use OCP\IL10N; use OCP\IUser; use OCP\IUserManager; use OCP\Util; @@ -46,14 +46,14 @@ class HookManager { /** @var CardDavBackend */ private $cardDav; - /** @var L10N */ + /** @var IL10N */ private $l10n; public function __construct(IUserManager $userManager, SyncService $syncService, CalDavBackend $calDav, CardDavBackend $cardDav, - L10N $l10n) { + IL10N $l10n) { $this->userManager = $userManager; $this->syncService = $syncService; $this->calDav = $calDav; diff --git a/apps/dav/tests/unit/AppInfo/ApplicationTest.php b/apps/dav/tests/unit/AppInfo/ApplicationTest.php index 95cdf924773d..314d9a131eec 100644 --- a/apps/dav/tests/unit/AppInfo/ApplicationTest.php +++ b/apps/dav/tests/unit/AppInfo/ApplicationTest.php @@ -23,6 +23,8 @@ namespace OCA\DAV\Tests\unit\AppInfo; use OCA\DAV\AppInfo\Application; +use OCA\DAV\CardDAV\CardDavBackend; +use OCA\DAV\CardDAV\ContactsManager; use OCP\Contacts\IManager; use Test\TestCase; @@ -39,16 +41,16 @@ public function test() { $c = $app->getContainer(); // assert service instances in the container are properly setup - $s = $c->query('ContactsManager'); + $s = $c->query(ContactsManager::class); $this->assertInstanceOf('OCA\DAV\CardDAV\ContactsManager', $s); - $s = $c->query('CardDavBackend'); + $s = $c->query(CardDavBackend::class); $this->assertInstanceOf('OCA\DAV\CardDAV\CardDavBackend', $s); } public function testContactsManagerSetup() { $app = new Application(); $c = $app->getContainer(); - $c->registerService('CardDavBackend', function($c) { + $c->registerService(CardDavBackend::class, function($c) { $service = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); $service->method('getAddressBooksForUser')->willReturn([]); return $service; diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php index bf008b6631df..09623b1da050 100644 --- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php +++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php @@ -132,7 +132,10 @@ private function getSyncServiceMock($backend, $response) { $userManager = $this->getMockBuilder('OCP\IUserManager')->disableOriginalConstructor()->getMock(); $logger = $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(); /** @var SyncService | \PHPUnit_Framework_MockObject_MockObject $ss */ - $ss = $this->createMock('OCA\DAV\CardDAV\SyncService', ['ensureSystemAddressBookExists', 'requestSyncReport', 'download'], [$backend, $userManager, $logger]); + $ss = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService') + ->setMethods(['ensureSystemAddressBookExists', 'requestSyncReport', 'download']) + ->setConstructorArgs([$backend, $userManager, $logger]) + ->getMock(); $ss->method('requestSyncReport')->withAnyParameters()->willReturn(['response' => $response, 'token' => 'sync-token-1']); $ss->method('ensureSystemAddressBookExists')->willReturn(['id' => 1]); $ss->method('download')->willReturn([ diff --git a/apps/encryption/appinfo/app.php b/apps/encryption/appinfo/app.php index 4a0d8f5e1a97..94a08a13aab4 100644 --- a/apps/encryption/appinfo/app.php +++ b/apps/encryption/appinfo/app.php @@ -22,7 +22,7 @@ namespace OCA\Encryption\AppInfo; -\OCP\Util::addscript('encryption', 'encryption'); +\OCP\Util::addScript('encryption', 'encryption'); $encryptionSystemReady = \OC::$server->getEncryptionManager()->isReady(); diff --git a/apps/updatenotification/admin.php b/apps/updatenotification/admin.php index fee4ab1c1604..85ddc76fd058 100644 --- a/apps/updatenotification/admin.php +++ b/apps/updatenotification/admin.php @@ -19,7 +19,10 @@ * */ -$app = new \OCA\UpdateNotification\AppInfo\Application(); +use OCA\UpdateNotification\AppInfo\Application; +use OCA\UpdateNotification\Controller\AdminController; + +$app = new Application(); /** @var OCA\UpdateNotification\Controller\AdminController $controller */ -$controller = $app->getContainer()->query('AdminController'); +$controller = $app->getContainer()->query(AdminController::class); return $controller->displayPanel()->render(); diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php index f802378e29e6..f4a4370bae5a 100644 --- a/apps/updatenotification/lib/AppInfo/Application.php +++ b/apps/updatenotification/lib/AppInfo/Application.php @@ -32,25 +32,5 @@ class Application extends App { public function __construct (array $urlParams = array()) { parent::__construct('updatenotification', $urlParams); - $container = $this->getContainer(); - - $container->registerService('AdminController', function(IAppContainer $c) { - $updater = new \OC\Updater\VersionCheck( - \OC::$server->getHTTPClientService(), - \OC::$server->getConfig() - ); - return new AdminController( - $c->query('AppName'), - $c->query('Request'), - $c->getServer()->getJobList(), - $c->getServer()->getSecureRandom(), - $c->getServer()->getConfig(), - new TimeFactory(), - $c->getServer()->getL10N($c->query('AppName')), - new UpdateChecker($updater), - $c->getServer()->getDateTimeFormatter() - ); - }); } - } diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index f97f271f9a92..fef8ab648564 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -44,6 +44,7 @@ use OC\Core\Middleware\TwoFactorMiddleware; use OCP\AppFramework\IApi; use OCP\AppFramework\IAppContainer; +use OCP\IDateTimeFormatter; class DIContainer extends SimpleContainer implements IAppContainer { @@ -291,6 +292,10 @@ public function __construct($appName, $urlParams = array()){ return $c; }); + $this->registerService(IDateTimeFormatter::class, function () { + return $this->getServer()->getDateTimeFormatter(); + }); + // commonly used attributes $this->registerService('UserId', function ($c) { return $c->query('OCP\\IUserSession')->getSession()->get('user_id'); diff --git a/lib/private/AppFramework/Utility/SimpleContainer.php b/lib/private/AppFramework/Utility/SimpleContainer.php index 281979fc6095..4a61865edd64 100644 --- a/lib/private/AppFramework/Utility/SimpleContainer.php +++ b/lib/private/AppFramework/Utility/SimpleContainer.php @@ -61,7 +61,16 @@ private function buildClass(ReflectionClass $class) { $resolveName = $parameterClass->name; } - $parameters[] = $this->query($resolveName); + try { + $parameters[] = $this->query($resolveName); + } catch (QueryException $ex) { + if ($parameter->isDefaultValueAvailable()) { + $default = $parameter->getDefaultValue(); + $parameters[] = $default; + } else { + throw $ex; + } + } } return $class->newInstanceArgs($parameters); } diff --git a/lib/private/Server.php b/lib/private/Server.php index afedaef36056..93d0718483bb 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -78,6 +78,7 @@ use OC\Security\TrustedDomainHelper; use OC\Session\CryptoWrapper; use OC\Tagging\TagMapper; +use OCP\IDateTimeFormatter; use OCP\IL10N; use OCP\IServerContainer; use OCP\Security\IContentSecurityPolicyManager;