Browse Source

Use magic DI

tags/v11.0RC2
Joas Schilling 7 years ago
parent
commit
1944d9b3ab
No account linked to committer's email address

+ 3
- 2
apps/dav/appinfo/app.php View File

@@ -23,6 +23,7 @@
*/

use OCA\DAV\AppInfo\Application;
use OCA\DAV\CardDAV\CardDavBackend;
use Symfony\Component\EventDispatcher\GenericEvent;

$app = new Application();
@@ -36,8 +37,8 @@ $eventDispatcher = \OC::$server->getEventDispatcher();

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

+ 2
- 2
apps/dav/appinfo/register_command.php View File

@@ -34,6 +34,6 @@ $app = new Application();

/** @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(\OCA\DAV\CardDAV\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(\OCA\DAV\CalDAV\BirthdayService::class)));

+ 7
- 97
apps/dav/lib/AppInfo/Application.php View File

@@ -25,110 +25,20 @@
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\SyncJob;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\DAV\GroupPrincipalBackend;
use OCA\DAV\HookManager;
use OCA\DAV\Migration\Classification;
use OCA\DAV\Migration\GenerateBirthdays;
use \OCP\AppFramework\App;
use OCP\AppFramework\IAppContainer;
use OCP\Contacts\IManager;
use OCP\IUser;
use Sabre\VObject\Reader;
use Symfony\Component\EventDispatcher\GenericEvent;

class Application extends App {

/**
* Application constructor.
*
* @param array $urlParams
*/
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')
);
});

$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, $c->getServer()->getUserManager(), $dispatcher);
});

$container->registerService('CalDavBackend', function($c) {
/** @var IAppContainer $c */
$db = $c->getServer()->getDatabaseConnection();
$principal = new Principal(
$c->getServer()->getUserManager(),
$c->getServer()->getGroupManager()
);
return new CalDavBackend($db, $principal, $c->getServer()->getUserManager());
});

$container->registerService('BirthdayService', function($c) {
/** @var IAppContainer $c */
$g = new GroupPrincipalBackend(
$c->getServer()->getGroupManager()
);
return new BirthdayService(
$c->query('CalDavBackend'),
$c->query('CardDavBackend'),
$g
);
});

$container->registerService('OCA\DAV\Migration\Classification', function ($c) {
/** @var IAppContainer $c */
return new Classification(
$c->query('CalDavBackend'),
$c->getServer()->getUserManager()
);
});

$container->registerService('OCA\DAV\Migration\GenerateBirthdays', function ($c) {
/** @var IAppContainer $c */
/** @var BirthdayService $b */
$b = $c->query('BirthdayService');
return new GenerateBirthdays(
$b,
$c->getServer()->getUserManager()
);
});
public function __construct() {
parent::__construct('dav');
}

/**
@@ -137,20 +47,20 @@ class Application extends App {
*/
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'),
@@ -165,7 +75,7 @@ class Application extends App {
$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')
@@ -175,7 +85,7 @@ class Application extends App {
}

public function getSyncService() {
return $this->getContainer()->query('SyncService');
return $this->getContainer()->query(SyncService::class);
}

}

+ 1
- 1
apps/dav/lib/CalDAV/BirthdayService.php View File

@@ -50,7 +50,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;

+ 4
- 2
apps/dav/tests/unit/AppInfo/ApplicationTest.php View File

@@ -24,6 +24,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;

@@ -40,9 +42,9 @@ class ApplicationTest extends TestCase {
$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);
}


Loading…
Cancel
Save