Как правильно читать теги с двоеточием (<p:id>) в google_merchant.xml в PHP
Способ чтения xml с тегами имеющими двоеточие <p:id>, как в выгрузке в Google Merchant. Использование registerXPathNamespace или обращение к тегу напрямую.
Чтобы не описывать повторно, даю ссылку на детали. На основе этой темы, мы будем пробовать запустить воркер через консоль и дать ему какую-то работу через клиент.
Внесем в код некоторые изменения. Вместо того, чтобы сохранять данные в файл, мы будем использовать вывод в консоль.
file_put_contents("php://stdin", 'строка вывода');
Продемонстрирую файл server.php с новыми изменениями.
<?php
$gmw = new GearmanWorker();
/**
* Пока рассмотрим инициализацию addServer() поумолчанию
* Этот метод нужен для объевляния, на какой машине работает этот worker
*/
$gmw->addServer();
/**
* log_client - со стороны клиента испольщовать этот alice
* work_log - функция, на которую будет кидать воркер, если
* на alice log_client придет что-то.
*/
$gmw->addFunction('log_client', 'work_log');
/**
* Специально сделано зациеливание
* Если объявить просто $gmw->work(), то задача завершится сразу же
* после выполнения. Тоесть сработает только раз.
*/
while($gmw->work());
/**
* Вписывает логи в файл
* @param JSON $param - Принимает только строку, поэтому передаем в json если нужно
*/
function work_log($param) {
/*Достает данные передаваемые клиентом*/
$data = $param->workload();
/**
* Искуственно делаем нагрузку, чтобы была имитация большого ожидания.
* Тут мы увидем, что скрипт клиента не будет ждать окончания 100 секунд,
* а повесит задачу и забудет про нее.
*/
for ($i = 0; $i < 100; $i++) {
sleep(1);
file_put_contents("php://stdin", $data); // Изменили для вывода в консоль
}
}
Запуск с консоли производится так (наш проект лежит в директории /var/www/test1.loc):
php /var/www/test1.loc/server.php
Данная строка в консоли повесит воркер в ожидание. Он будет ждать работы пока не закроется консоль или не кончится время ожидания max_input_time в php.ini.

Видно что консоли ожидает (Warning свидетельствует про возможную проблему в самой библиотеке Gearman). После запуска client.php наглядно видно, что в браузере все завершилось, а консоль работает сама по себе. Если консоль закрыть, и запустить потом заново воркер, то он продолжит работу далее с того момента, на котором остановился.

Способ чтения xml с тегами имеющими двоеточие <p:id>, как в выгрузке в Google Merchant. Использование registerXPathNamespace или обращение к тегу напрямую.
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Рассмотрим исправление исчезновения пробелов перед переменными в старой версии Twig на php 7.4 не обновляя версию.
Рассмотрим возможность быстрого создания CSV файла с автоматическим скачиванием файла. Рассмотрим формирование, разделители и header для возможности скачать файл.
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.