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

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

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

protected $request;

public function __construct(
    \Magento\Framework\App\Request\Http $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, тоді ці методи не є новими для вас. Дізнайтесь  більше про доступні методи, при роботі із запитом, дослідивши класи:
Magento\Framework\App\Request\Http
Magento\Framework\HTTP\PhpEnvironment\Request

 

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