Owncloud app - 依赖注入问题

时间:2016-10-31 05:22:26

标签: php owncloud

当我尝试将存储类注入控制器时,我从Owncloud收到以下错误。

Request ID: PYpBq4u97OltF80ORglm
Type: OCP\AppFramework\QueryException
Code: 0
Message: Could not resolve storage! Class storage does not exist
File: /var/www/html/lib/private/appframework/utility/simplecontainer.php
Line: 89

Trace

#0     /var/www/html/lib/private/appframework/utility/simplecontainer.php(104): OC\AppFramework\Utility\SimpleContainer->resolve('storage')
#1 /var/www/html/lib/private/appframework/utility/simplecontainer.php(64): OC\AppFramework\Utility\SimpleContainer->query('storage')
#2 /var/www/html/lib/private/appframework/utility/simplecontainer.php(83): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#3 /var/www/html/lib/private/appframework/utility/simplecontainer.php(104): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\BusMediaMon...')
#4 /var/www/html/lib/private/appframework/utility/simplecontainer.php(64): OC\AppFramework\Utility\SimpleContainer->query('OCA\\BusMediaMon...')
#5 /var/www/html/lib/private/appframework/utility/simplecontainer.php(83): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#6 /var/www/html/lib/private/appframework/utility/simplecontainer.php(104): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\BusMediaMon...')
#7 /var/www/html/lib/private/appframework/app.php(97): OC\AppFramework\Utility\SimpleContainer->query('OCA\\BusMediaMon...')
#8 /var/www/html/lib/private/appframework/routing/routeactionhandler.php(45): OC\AppFramework\App::main('GpsController', 'online', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
#9 [internal function]: OC\AppFramework\routing\RouteActionHandler->__invoke(Array)
#10 /var/www/html/lib/private/route/router.php(276): call_user_func(Object(OC\AppFramework\routing\RouteActionHandler), Array)
#11 /var/www/html/lib/base.php(882): OC\Route\Router->match('/apps/busmediam...')
#12 /var/www/html/index.php(39): OC::handleRequest()
#13 {main}

在控制器中我有:

class GPSController extends Controller {
  private $gpsService;
  private $busService;
  private $appStorage;

  public function __construct($AppName, IRequest $request, GPSService   $gpsService, BusService $busService, AppStorage $appStorage){

在application.php中我有:

$container->registerService('AppStorage', function($c) {
        return new AppStorage(
          $c->query('UserStorage'), 
          $c->query('AppName'), 
          $c->query('CoreConfig'),
          $c->query('UserId'));
    });

    $container->registerService('UserStorage', function($c) {
        return $c->query('ServerContainer')->getUserFolder();
    });

$container->registerService('GPSController', function($c) {
        return new GPSController(
            $c->query('AppName'),
            $c->query('Request'),
            $c->query('GPSService'),
            $c->query('BusService'),
            $c->query('AppStorage')
        );
    });

将相同的存储类注入另一个控制器,它在那里工作正常。

我做错了什么?

0 个答案:

没有答案