Monthly Archives: January 2018
Усі PHP програмісти добре знайомі із суперглобальними змінними $_GET, $_REQUEST, $_POST, але їх пряме використання не дозволяється згідно стандартів коду Magento2. Тому не використовуйте їх у своїх Magento 2 проектах, особливо якщо бажаєте проходження коду Technical Review на Magento Marketplace.
Які ж методи слід використовувати?
Для отримання даних із запиту, використовуйте такі методи:
getParam($key, $default = null);
getParams();
getPostParam($key, $default = null);
getPost();
Хочемо поділитися з вами записом двох виступів із зустрічей Magento 2 DevTalks. У першому Андрій Коносов розповідає про ТОП 10 вразливостей веб-додатків за версією OWASP та як із ними боротися.
У другому Станіслав Лопухов переказує доповідь від James Titcumb та ще раз "пробігається" по найбільш поширених помилках, які призводять до проблем з безпекою веб-додатків.
У Magetno 2 однією із нових властивостей є віртуальні типи (Magento 2 Virtual Type). Для чого вони?
Уявіть, що вам уже доступний клас A:
namespace VendorName\ModuleName\Model
class A
{
protected $arg1;
protected $arg2;
protected $arg3;
public function __construct(
Argument1 $arg1,
Argument2 $arg2,
Argument3 $arg3
) {
$this->arg1 = $arg1;
$this->arg2 = $arg2;
$this->arg3 = $arg3;
}
}
І вам необнідно створити клас B, який унаслідуватимется від А, проте він повинен приймати інший аргумент в якості $arg2. Для цього ви створите новий php-файл для класу B:
Інколи необхідно виконувати код Magento 2 за її межами. Це можна робити у таких випадках:
- інтеграція Magento 2 з іншими фрейморками чи платвормами, які встановлені на тому ж веб-сервері,
- швидкий тестовий виклик якогось методу, наприклад, крон задачі.
Magento 2 — це сукупність функцій, які допомагають вам створити успішний магазин, яким легко керувати. У адмін панелі Magento 2 виконується багато процесів, які потребують автоматизації та планування. І саме тут стає в нагоді крон задача. Тому...
Давайте з’ясуємо, що це, навіщо це потрібно і як створити власну крон задачі у Magento 2.
Що таке крон задача в Magento?
Крон задача в Magento — одна з найважливіших функцій Magento 2. Вона допомагає налаштувати команди або скрипт, які систематично запускаються та виконують завдання, для яких ви їх створите.
За допомогою крон задачі вам не потрібно вручну робити reindex , генерувати Google sitemap, надсилати електронні листи Magento, оновлювати курси валют тощо. Крон задача робить все за вас автоматично, в певну дату та час, якщо ви налаштуєте її правильно.
Навіщо використовувати крон задачу у Magento 2?
Як вже зазначалось раніше, крон задача спрощує вам керування Magento 2, виконуючи певні завдання за розкладом. З крон задачею вам не потрібно робити багато монотонної роботи вручну або затримуватися допізна, чекаючи найзручнішого часу для виконання якогось завдання. Крон задача зробить все за вас.
Найпоширеніші завдання якими займається крон задача:
- Переіндексація
- Розсилка новин /усіх електронних листів Magento
- Створення файлів Google Sitemap
- Оновлення курсів валют
- Надсилання сповіщень користувачам
- Оновлення catalog price rules
Однак це далеко не все. Багато розширень Magento 2 використовують крон задачі для регулярного оновлення даних. І наші розширень Magento 2 не є винятком. Наприклад:
1. У Magento 2 Dynamic Category, що дозволяє створювати автоматичні категорії, є 2 крон задачі:
- Перша оновлює динамічні атрибути продукту
- Друга застосовує правила динамічної категорії
2. У розширенні Magento 2 WebP Images крон задача запускає та конвертує зображення в сучасний формат WebP.
3. У розширенні Magento 2 Mautic Integration крон задача асинхронно запускає запити API до Mautic.
Примітка: перед створенням власної крон задачі, переконайтесь. що у вас є крони, відкривши crontab як власник файлової системи Magento. Виконайте цю команду:
crontab -l
Результат повинен бути наступним:
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b * * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log #~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
Виконайте наступні кроки щоб створити крон задачу в Magento 2:
1. Створіть мінімальний модуль.
2. Додайте до нього Cron/SomeCronModel.php - модель крон задачі:
<?php
namespace VendorName\ModuleName\Cron;
class SomeCronModel
{
public function execute()
{
//ваш код крон задачі
}
}