PHP Получить переменную из другого файла, не выполняя прочих функций

123
10 августа 2019, 03:50

В одном файле, скажем 1.php формируется переменная, номер заказа:

        $year = date('Y');
        core::$db->change("INSERT INTO `orders` SET `year`='$year', `info`='{FORMING}'");
        $oid = core::$db->lastid;
        $number = $oid . '-' . $year;

И нужно из него вытянуть этот сформированный номер в файл 2.php, для отправки этого номера на почту менеджеру и клиенту, но подключая include и require, выполняются другие функции - в моем случае стили заменяются. Можно ли вытянуть только эту переменную и ничего более? Пробовала через сессию, но получилось, что переменная создавалась дважды, с разными номерами внутри

Answer 1

Всё очень просто. Для того, чтобы выполнить только одно действие, не выполняя прочих, надо, чтобы файл выполнял только одно действие.

Файл "1.php" (надеюсь, в реальности он называется как-то осмысленно) должен делать только то, что написано здесь.

И так же нам будет нужно два других файла, которые вызывают его через include: старый файл "1.php", и новый.

Либо - если все должно происходить одновременно, и генерация номера, и отправка его на емейл - то отправку сообщения менеджеру надо вызывать через include после выполнения данного кода.

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

Answer 2

Redis не подойдёт? Да, я понимаю, что в данном случае это слегка оверкилл, но тем не менее это решит поставленную задачу.

Если такая ситуация повторяется регулярно, можно заюзать AMQP решение, например, RabbitMQ.

READ ALSO
оптимизация работы с API

оптимизация работы с API

Есть сайт, при загрузке одной страницы идут несколько десятков одинаковых запросов к апи(/api/products, /api/objects), нужно сделать оптимизацию запросов...

117
Кодировать строку UTF-8 в URL-код php, js

Кодировать строку UTF-8 в URL-код php, js

Решение возможно на php и\или js

100
Не работают простые запросы типа SELECT

Не работают простые запросы типа SELECT

Храню в MySQL словарь: 1 таблица, 2 столбца (id и ru_word)Параметры второго столбца: тип Varchar(100), сравнение urf8_general_ci

103