Как сохранить данные запроса Laravel люмен в течение срока действия запроса? - PullRequest
0 голосов
/ 11 февраля 2020

Я использую Lumen для создания API и пытаюсь выяснить, как лучше всего хранить данные в памяти на протяжении всего времени запроса. Идея состоит в том, чтобы избежать записи в базу данных или использовать что-то вроде Redis или Memcached. Итак, в основном, я хочу создать глобальную переменную, которой я могу манипулировать по пути, пока действие http не будет завершено, и затем оно может исчезнуть из памяти.

Например, если я отправлю запрос POST с тело моего маршрута /api/v1/postme, я хочу принять запрос POST и сделать еще один вызов другой службе для получения некоторых данных. Я хочу взять эти данные и объединить их с исходными данными из запроса POST. Затем я хочу взять эти недавно объединенные данные и отправить их в качестве ответа после еще нескольких переводов.

Я читал в некоторых сообщениях в Интернете, что можно использовать переменные конфигурации приложения в файле .env как временные хранение данных в памяти, но мне было интересно, есть ли другой или, возможно, лучший способ выполнить это sh.

Я прочитал документацию Laravel / Lumen, и мне кажется, что я мог бы писать в Люмен кеш, но я думаю, что это приведет к созданию соединения с базой данных, а это не то, что я ищу.

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Если вы хотите использовать модуль конфигурации lumen, следуйте этому.

Когда приходит запрос, нажимает myfun c

контроллер. php

    public function myfunc(Request $request){
        app('config')->set('someuniquekey', $request);
        // call some other api
        $client = new \GuzzleHttp\Client(..);
        $response = $client->post(..);


        //retrive the value stored in config
        $request= config('someuniquekey');

        //merge $request and $response


        //This can be accessed in class method/ helper function too
        $this->func2();
        func3();
    }

    private function func2(){
        $request= config('someuniquekey'); // WORKS
    }

помощники. php

    function func3(){
        $request= config('someuniquekey'); // WORKS
    }
0 голосов
/ 13 февраля 2020

Вы можете сделать так:

# Store it in request, for that run
request()->request->add(['your_param'=>'yourvalue']);

# Then access it from anywhere using
request()->get('your_param');

Это довольно простой подход

...