Совет по Joomla: как получать данные из суперглобальных массивов $_POST, $_GET и других?

На основе данных из $_GET, $_POST порой строится логика работы кода начиная от шаблона Joomla и кончая модулями и плагинами. Для работы с этими данными используется объект Input, который мы получаем из Приложения Joomla.
Приведу пример, часто использующийся при разработке шаблонов Joomla
<?php /** @var \Joomla\CMS\Application\CMSApplication $app */ $app = Factory::getApplication(); /** @var \Joomla\Input\Input $input */ $input = $app->getInput(); // Имя параметра и его значение по умолчанию $option = $input->get('option',''); $view = $input->get('view', 'category'); $layout = $input->getCmd('layout', 'edit'); $task = $input->getString('task', ''); $itemid = $input->getInt('Itemid', '');
В методе $input->get() 2-й аргумент - это значение по умолчанию на случай, если данных не обнаружено. 3-й аргумент - параметры фильтрации данных - будьте с ним внимательны. Например, вы хотите получить данные, отправленные на ендпоинт в виде JSON.stringify.
<?php /** @var \Joomla\Input\Input $input */ $input->json->get('title', '', 'RAW') // ИЛИ $data = $input->json->getArray();
Если вы уверены, что данные должны быть именно в $_POST и нигде более, то получайте их именно оттуда.
<?php /** @var \Joomla\Input\Input $input */ $title = $input->post->get('title', '', 'RAW');
Подробнее в файле libraries/vendor/joomla/input/src/Input.php.
