• Как правильно сделать рассылку в Telegram боте?

    1. Создаете очередь из списка пользователей для которых необходимо сделать конкретную рассылку. Это может быть таблица в БД, список в редисе или мемкеше, или даже список в файле.
    2. Создает скрипт который:
      1. Берет n пользователей из списка п.1. Где n < допустимого числа сообщений.
      2. Отправляет каждому полученному пользователю сообщение.

    3. Настраиваете cron, которые будет запускать скрипт каждые 30мин/час.


    Таким образом ресурсы сервера буду использоваться только во время отправки сообщение в каждый интервал времени.
    Ответ написан
    4 комментария
  • Аналог Laravel Service Provider для Symfony 4?

    Если я правильно вас понял, вы ищите - https://symfony.com/doc/current/service_container/...

    Этот инструмент позволяет собрать сервисы так как вам нужно при инициализации бандла.
    Ответ написан
    Комментировать
  • Как правильно использовать Dependency Injection Container?

    DIC - это некий механизм, который внедряет зависимости объекты.

    Приведенный вами код не является примером использования DIC потому, что вы вручную передаете зависимости в объекты Second и Third.

    Примером использования DIC будет внедрение в First, объекта Second, а в объект Second объекта Third:
    class First
    {
        protected $second;
    
        public function __construct(Second $second)
        {
            $this->second = $second;
        }
    
        public function start()
        {
            return $this->second->start();
        }
    }


    class Second
    {
        protected $elem1;
        protected $elem2;
        protected $elem3;
        protected $third;
    
        public function __construct($this->elem1, $this->elem2, $this->elem3, Third $third)
        {
            $this->elem1 = $elem1;
            $this->elem2 = $elem2;
            $this->elem3 = $elem3;
            $this->third = $third;
        }
    
        public function start()
        {
            return $this->third->start();
        }
    }


    class Third
    {
        protected $elem3;
    
        public function __construct($elem3)
        {
            $this->elem3 = $elem3;
        }
    
        public function start()
        {
            return 'Third';
        }
    }


    При этом вы должны отдельно сконфигурировать каждый из контейнеров(объектов). Способ же будет зависить от выбора конкретного инструмента.
    Ответ написан
  • Можно ли в symfony динамически внедрять зависимости?

    Решить проблему в лоб, к сожалению, не получится.
    Вам нужен промежуточный слой между сервис контейнером и вашим сервисом. В симфони есть механизм для подобных задач: symfony.com/doc/current/service_container/compiler...

    Работает это так:

    1. Вы декларируете сервисы Bar1, Bar2, Bar3 указывая им определенный тег:
    services:
       bundle.service.bar1:
          class: .../Bar1
          arguments:
             ...
          tags:
             - { name: bar }

    2. Создаете сервис, например BarProvider, который будет содержать ссылки на сервисы Bar1, Bar2, ... и предоставляющий метод(ы) для их получения.

    3. Создаете Compiler, которые достает из сервис-контейнера все сервисы, имеющие тег bar и складывает их в BarProvider (BarProvider должен иметь метод для добавления BarInterface)

    4. Инжектите BarProvider в нужный вам сервис и достаете из него требуемый сервис Bar
    Ответ написан
    Комментировать
  • Как запарсить xml файл в таблицу mysql с помощью php?

    Приблизительный алгоритм не учитывающий вашу сустему, подключение к базе и тд:
    1. Получить содержимое файла, если он на диске то file_get_contents или fread
    2. Разобрать xml документ, чтобы с ним можно было работать. Например при помощи SimpleXMLElement
    3. Обойти в цикле, например, foreach'ем, все корненые элементы и в каждой итерации добавлять запись в базу.

    Это самый просто вариант. Если записей в файле много, нужно в п.3 собирать запросы по n запросов и вставлять их в базу пачкой. Но это по необходимости
    Ответ написан
    Комментировать
  • Как настроить form symfony?

    Вместо {{ form_row(categories_create_form.title) }}
    используйте {{ form_widget(categories_create_form.title) }}

    Для того чтобы отдельно вывести название поля - {{ form_label(categories_create_form.title) }}
    Ответ написан
    Комментировать
  • Как убрать лишние нули в цене на Opencart?

    Посмотрите какую валюту вы используете. Проблема может быть в том, что основной валютой для магазина установлен $, а отображаете вы рубли
    Ответ написан
    Комментировать
  • Куда отправлять запрос Ajax в заказ в 1 клик?

    Стандартный чекаут опенкарта работает по шагам, поэтому нет одного контроллера, который делает все. Найдите одностраничный чекаут для опенкарта, или придется писать свой
    Ответ написан
  • Как подсчитать кол-во событий за час?

    Возможно такое решение:
    Создать таблицу user_log (id, user_id, date) и при каждом обращении добавлять запись в эту таблицу.
    Дальше вы вытягиваете кол-во обращений за определенный промежуток времени:
    SELECT COUNT(*) 
    FROM `user_log`
    WHERE `date` >= '2016-01-24 18:00:00'
    AND `date` < '2016-01-24 17:00:00'
    Ответ написан
    Комментировать
  • Почему не приходят данные в ответ от php скрипта?

    У вас проблема в php коде:
    $arrayFields = array(
        'name_user' => $_POST['name_user'],
        'email_user' => $_POST['email_user'],
        'password_user' => $_POST['password_user'],
        'password_2_user' => $_POST['password_2_user']
    );


    Если в $_POST нет какого-либо из указанных выше параметров, будет выброшен нотис, соответственно на фронт вернется не json объект, а просто текст, и alert'а не будет.

    Сделайте установку параметров $arrayFields через тернарный оператор
    Ответ написан
    Комментировать
  • Как избежать зацикливания при получении связанных сущностей через доктрину?

    @GhostSt92 Автор вопроса
    Мдаа. Посыпаю голову пеплом. Проблема крылась не в доктрине, а в кривых руках и недостатке знаний.

    Проблема оказалась вот в чем:
    В сущности Category настроена self-referenced association, есть поля parent и children.
    Метод search я использовал в api и возвращал сериализованный объект.

    И получилось, что при нормализации объектов, процесс зацикливался на category->parent->children->category.
    Странно что не выводилась ошибка, но тут у меня есть догадка. Так как список children состоит из десятка категорий, нормализатор и не разпознавал зацикливание. Но тут я не уверен.

    shagguboy и Алексей Скобкин выражаю огромную благодарность вам за советы. Благодаря вам я начал копать в правильную сторону! Спасибо!
    Ответ написан
    Комментировать