All streams
Search
Write a publication
Pull to refresh
4
0
Send message

похоже ребята словили хабр эффект. ;) Зашел на сайт. Сайт еле дышит. :) попробую через пару дней посмотреть свою генеалогию

Коллега в условиях задачи указал, что надо не просто выгрузить данные, а еще что то сними сделать причем построчно. на верное это не так очевидно из условия. Так вот при условии что надо построчно обработать данные, у нас получается, что либо надо выгружать весь массив в память, либо надо совершать обработку внутри цикла Так вот для того чтобы не обрабатывать данные в цикле и применяется генератор

  1. не знаю насколько это кошерно....

while ($arItem = $obItems->fetch()) {
   
        $result[$arItem['ID']] = getItemRes($arItem);
   
}

function getItemRes($item)
{
    $res = [];
    foreach ($item as $index => $row) {

        if (!empty($row)) {
            $tmp = unserialize($row);

            if ($tmp != false) {
                if (!empty($tmp['VALUE'])) {
                    $res[$index] = $tmp['VALUE'];
                }
            } else {
                $res[$index] = $row;
            }
        }
    }

    return $res;
}
  1. Это просто получить ID свойств по CODE. их в принципе можно и руками прописать. просто привык не пользоваться ID, т.к. на dev и на prod - ID могут различаться

  2. Т.к. скрипт отрабатывает в фоне, альтернативу не рассматривал. Целей оптимизации этого скрипта добился. В качестве академического интереса, можно подумать

  3. Опять же это уже больше исследовательский момент. Но так же можно будет попробовать. Можно и на чистом MySqQL написать.

Спасибо за содержательный комментарий

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Middle
From 250,000 ₽
Git
PHP
OOP
MySQL