Перезагрузка функций и скрипта

  • Автор темы Автор темы EntC
  • Дата начала Дата начала
file_include.php
$blabla = create_function(...);

file_master.php
$result = $blabla(args);

Все можно переопределить. Читайте маны.

-~{}~ 04.08.07 01:57:

Можно попробовать с pcntl_exec поиграться.
 
Sokil.Dmytro и что, логика приходит извне системы? что мешает сделать значение-селектор, который менять по полученным данным, и диспечер, который вызывал бы функцию, реализующую нужную логику обработки данных согласно значению селектора.

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

MiksIr, это позволяет СОЗДАТЬ новую анонимную функцию, но не заменить ее уже существующую. это ни чем не отличается от загрузки кода через include - там тоже нельзя переопределить функцию.
 
К сожалению всё выше написанное это пока только догадки. Я так понимаю никто не сталкивался с такой задачей.

dimagolov - насчёт второго параграфа- извиняюсь,но это абсурд, мне даже смешно стало. Цели гораздо более мирные, а что пишу - даже не знаю как обьяснить - обработчик логов и ошибок,что-ли (уж как вам удобней ,если интересуетесь). Это не столь важно в данном вопросе.

И последний ответ Wicked был наиболее точным.

Насчёт спора dimagolov и Sokil.Dmytro - повторюсь- данные постоянно поступают новые, а изменяться в скрипте может что угодно,если я обновляю скрипт. В общем, самое главное- этот как переопределить пользовательские функции. Для обновления в скрипте я уже нашёл решение.
 
Что вы курите...
# cat test1.php
<?

for (;;) {
include("test11.php");
$a = $testf(10);
print "$a\n";
unset($testf);
sleep(1);
}

# cat test11.php
<?

$testf = create_function('$a', 'return $a*$a;');
 
dimagolov
Для него критично потеря соединения с сокетом.
EntC
Всё таки посмотри ман по теме create_function....
 
EntC
что произойдет, если сокет все таки порвется по независящим от вас причинам?

Имхо нужно написать приложение так, чтобы оно могло нормально оправляться после такого случая, ибо они БУДУТ возникать. А если вы сделаете такое приложение, тогда и вручную ненадолго закрывать сокеты не будет проблемой. Иначе я вам могу только посочувствовать...
 
В принципе, я не хотел использовать create_function, но понял,что это всё-таки лучший вариант (можно было попытаться использовать runkit и другие экзотические методы) , поэтому переписал скрипт с использованием create_function (пока не тестировал всё до конца).

Wicked, у скрипта есть "автоподнятие", но это только, конечно на экстренный случай, обновления предположительно будут чаще даунов сервера.

Спасибо всем,кто помогал.
 
Сверху