. */ namespace Alledia\Framework\Joomla\Controller; use Joomla\CMS\Language\Text; use Joomla\CMS\Response\JsonResponse; defined('_JEXEC') or die(); abstract class Json extends Base { /** * @inheritDoc * @throws \Exception` */ public function checkToken($method = 'post', $redirect = false) { $valid = parent::checkToken($method, $redirect); if (!$valid) { throw new \Exception(Text::_('JINVALID_TOKEN'), 403); } return true; } /** * Sends a json package to output. All php processing ended to prevent any * plugin processing that might slow things down or waste memory. * * @param ?string|\Throwable $message * * @return void */ protected function returnJson($message = null) { $result = new JsonResponse(); if ($message) { if ($message instanceof \Throwable) { $result->success = false; $result->message = $message->getMessage(); $result->data = [ 'file' => $message->getFile(), 'line' => $message->getLine() ]; } else { $result->message = $message; } } header('Content-Type: application/json'); echo $result; jexit(); } }