aerojun's avatar

Unresolvable dependency resolving

I'm trying to use $_SESSION in my Lumen API to use some service but i get the following error:

BindingResolutionException in Container.php line 837: Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Support\Manager

I have the following in bootstrap/app.php:

<?php

require_once __DIR__.'/../vendor/autoload.php';
Dotenv::load(__DIR__.'/../');

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->withFacades();

//$app->withEloquent();

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

$app->middleware([
    //Illuminate\Cookie\Middleware\EncryptCookies::class,
    //Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    Illuminate\Session\Middleware\StartSession::class,
    Illuminate\View\Middleware\ShareErrorsFromSession::class,
    //Laravel\Lumen\Http\Middleware\VerifyCsrfToken::class,
]);

$app->routeMiddleware([
    'cacheafter' => \App\Http\Middleware\AfterMiddleware::class,
    'cachebefore' => \App\Http\Middleware\BeforeMiddleware::class,
]);

// app->register(App\Providers\AppServiceProvider::class);
// $app->register(App\Providers\EventServiceProvider::class);

$app->register('App\Providers\CommandServiceProvider');
$app->register('Illuminate\Session\SessionServiceProvider');

$app->alias('db', 'Illuminate\Database\DatabaseManager');

$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
    require __DIR__.'/../app/Http/routes.php';
});

return $app;

My function in the controller:

public function auth()
    {
        session_start();
        if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) {
            $_SESSION['state'] = 0;
        }

        try {

            $authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI;
            $this->oauthClient = new OAuth($this->consumerKey, $this->consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType);
            $this->oauthClient->enableDebug();

            if (!isset($_GET['oauth_token']) && !$_SESSION['state']) {

                $requestToken = $this->oauthClient->getRequestToken($this->temporaryCredentialsRequestUrl);
                $_SESSION['secret'] = $requestToken['oauth_token_secret'];
                $_SESSION['state'] = 1;
                header('Location: ' . $this->adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']);
                exit;

            } else if ($_SESSION['state'] == 1) {

                $this->oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']);
                $accessToken = $this->oauthClient->getAccessToken($this->accessTokenRequestUrl);
                $_SESSION['state'] = 2;
                $_SESSION['token'] = $accessToken['oauth_token'];
                $_SESSION['secret'] = $accessToken['oauth_token_secret'];
                header('Location: ' . $this->callbackUrl);
                exit;

            } else {

                $this->oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);

                $resourceUrl = "$this->apiUrl/products";
                $this->oauthClient->fetch($resourceUrl, array(), 'GET', array('Content-Type' => 'application/json'));
                $productsList = json_decode($this->oauthClient->getLastResponse());
                print_r($productsList);
            }

        } catch (OAuthException $e) {

            print_r($e->getMessage());
            echo "&lt;br/&gt;";
            print_r($e->lastResponse);
        }

    }
0 likes
0 replies

Please or to participate in this conversation.