контроллер представления модели — Попытка встроить php в мои файлы веток, используя userfrost

Мне нужно включить некоторую форму вызова API в мой сайт по замораживанию пользователей, однако мне трудно найти способ сделать это.
Я видел, что один из способов добавить PHP в файлы веток — это создать расширение, но, похоже, это не то, что я ищу.

Мне нужно иметь возможность извлекать данные с помощью стороннего API, с которым я ранее использовал PHP для выполнения вызовов, однако, если кто-то из вас сочтет, что для этого нужно использовать другой метод, я открыт для предложений

ТИА

2

Решение

Для Userfrosting> 4.1 в файле sprinkle / composer.json добавьте требование включить Guzzle:
"require": {"guzzlehttp/guzzle": "~6.0"}

(не забудьте запустить composer update установить новую зависимость.

Жадные Документы

Тогда в вашем контроллер включить жрать:

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Exception\ConnectException;

тогда вы можете начать жрать с:

$client = new Client([
'base_uri' => $config['api']['host'].'/',
'timeout' => 5 // your timeout param
]);

(Я установил свой хост API в конфигурации sprinkle, используя переменную окружения, чтобы она не была жестко задана).

затем вы можете сделать запрос POST следующим образом, вернув ответ в переменную.

$api_response = $client->post('your_api_route', [
'json' => [
'api_param_1' => 'Hello',
'api_param_2' => 'World!'
]
]);

Также рекомендуется завернуть последний бит в try и лови глотки / http исключения.

Если ваш ответ является документом JSON, вы можете извлечь содержимое в массив с помощью:

$data = json_decode($api_response->getBody()->getContents(), true);
2

Другие решения

Я разговариваю с API в моей настройке пользовательской заморозки в контроллере, вызываемом моим маршрутом, а затем передаю эти данные в мой шаблон. Проверьте первый урок о том, как создать новый шаблон и передать в него данные. Делайте с PHP все, что вам нужно в маршруте (через контроллер).

1

По вопросам рекламы [email protected]