[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбор чужого кода
assembler
Всём привет ! в процессе разборки кода одной функции (формирование запроса данных в бд).
Встречаю встроенную в php функции extract, где в качестве аргумента должен присутствовать массив, он есть дальше - возвращает многомерный массив, содержащий список всех определенных переменных - носит имя функции get_defined_vars (функция внутри функции ?). Но перед ней идет ещё составная конструкция js_add_trigger - которая ставит меня в тупик. На описание функции trigger в php не похоже, на вставку кода javascript - то же нет. Причем разделено это все нижнем подчеркиванием а не точками. Вижу множество примеров с данной конструкцией
extract(js_add_trigger(get_defined_vars(), 'before'));

Но почему именно так, не понимаю. Прошу объяснить мне идиоту.
Valick
extract в РНР это вообще ошибка природы. Я так понимаю у вас лютодревний лютоговнокод.
get_defined_vars() - отдаёт все переменные в виде массива
js_add_trigger - это пользовательская функция и что она делает известно только автору, но полагаю, что вычленяет из массива переменных что-то с названием 'before' и отдаёт в виде массива функции extract.
Похоже какой-то аналог вот этого https://www.php.net/manual/ru/book.filter.php

P.S. аж тилипает от такого кода...

_____________
Стимулятор ~yoomoney - 41001303250491
assembler
Привет Valick ! большое спасибо. Я нашел эту пользовательскую функцию. Буду теперь разбираться, что она делает.

function js_add_trigger($vars = array(), $name = ''){
list(,$caller) = debug_backtrace();
$caller['class'] = isset($caller['class']) ? $caller['class'] : "";
$trigger_name = 'on'.ucfirst($caller['class']).ucfirst($caller['function']).ucfirst($name);
JDispatcher::getInstance()->trigger($trigger_name, array(&$caller['object'], &$vars));
return $vars;


Ваш ответ, очень мне помог в понимание этого момента. Желаю вам всяческих успехов в ваших делах. :D
andrey888
Цитата (assembler @ 15.11.2022 - 04:16)
Привет Valick ! большое спасибо. Я нашел эту пользовательскую функцию. Буду теперь разбираться, что она делает.

function js_add_trigger($vars = array(), $name = ''){
list(,$caller) = debug_backtrace();
$caller['class'] = isset($caller['class']) ? $caller['class'] : "";
$trigger_name = 'on'.ucfirst($caller['class']).ucfirst($caller['function']).ucfirst($name);
JDispatcher::getInstance()->trigger($trigger_name, array(&$caller['object'], &$vars));
return $vars;


Ваш ответ, очень мне помог в понимание этого момента. Желаю вам всяческих успехов в ваших делах. :D

Как вариант (судя по названию и по контенту внутри) эта функция ищет определенные элементы кода и присваивает им разного рода JS триггеры


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.