Усі PHP-програмісти знайомі з суперглобальними змінними, такими як $_GET, $_REQUEST $_POST , але їх пряме використання заборонено згідно зі стандартами коду Magento2. Тому не використовуйте їх у своїх проектах Magento 2, особливо якщо ви хочете пройти технічний огляд коду на Magento Marketplace.

Отже, які методи слід використовувати?

Щоб отримати дані із запиту, використовуйте такі методи:
getParam ($key, $default = null);
getParams();
getPostParam ($key, $default = null);
getPost();
класу \Magento\Framework\App\RequestInterface , наприклад:

protected $request;

public function __construct(
    \Magento\Framework\App\RequestInterface $request,
    ....//інші параметри вашого класу
) {
    $this->request = $request;
    ...//інший код конструктора
}

public function example() {
    // $data = $_REQUEST;
    $data = $this->request->getParams();

    // $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
  $id = $this->request->getParam('id');

    // $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : 'петро';
$name = $this->request->getParam('name', 'петро');

    // $postData = $_POST;
$postData = $this->request->getPost();

    // $password = isset($_POST['password']) ? $_REQUEST['password'] : null;
$name = $this->request->getPostValue('password');

    // $storeId = isset($_POST['store_id']) ? $_REQUEST['store_id'] : 1;
$storeId = $this->request->getPostValue('store_id', 1);
}

Якщо у вас є досвід роботи з ZendFramework, то ви повинні бути знайомі з цими методами.

Важливо! Щоб отримати об'єкт запиту у контролері або блочному класі, не оголошуйте жодної додаткової залежності в конструкторі. Вам доступний публічний метод getRequest() .