За последние 24 часа нас посетили 20265 программистов и 1006 роботов. Сейчас ищут 369 программистов ...

Хранилище данных при запуске приложения

Тема в разделе "Yii", создана пользователем Alesto, 28 фев 2017.

  1. Alesto

    Alesto Новичок

    С нами с:
    15 янв 2017
    Сообщения:
    72
    Симпатии:
    8
    Всем привет. Нужна помощь, есть задача в которой данные должны храниться не в базе данных а в памяти. К примеру я выбрал стек, запихнул его в frontend/models/Stack, сделал его синглетоном наивно полагая, что объект будет 1 и смогу через него работать с массивом, как бы не так, при обновление страницы массив зануляется. Возможно где-то в этом месте допустил ошибку в логике.
    Возникла мысль. Что если я реализацию стека перенесу в компонент, т.е. сюда common\components?
    После в конфиге зарегистрирую его и буду обращаться \Yii::$app->Stack ? К примеру \Yii::$app->Stack->push(1);

    Буду благодарен за советы.
     
  2. Alesto

    Alesto Новичок

    С нами с:
    15 янв 2017
    Сообщения:
    72
    Симпатии:
    8
    Бредовая мысль.
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Alesto PHP живёт 1 запрос, потом всё по новой. значит состояние не сохраняет и его нужно где-то хранить, чтобы хранить данные в оперативной памяти можешь использовать memcache или redise
     
    Alesto нравится это.
  4. Alesto

    Alesto Новичок

    С нами с:
    15 янв 2017
    Сообщения:
    72
    Симпатии:
    8
    Спасибо, у меня в этом плане переход с Java весьма неприятный.
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    На jsp вроде та же ситуация. А вообще, можно замутить, чтоб конструктор Stack считывал его из какого-нибудь memcache, правда последний не гарантирует, что не сотрёт оттуда значения в случае нехватки памяти.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Проникайся: http://phpfaq.ru/newbie/na_tanke
    При переходе с не stateless-платформ и десктопа, можно много еще подводных камней наловить, если мыслить "по-старинке".