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

MiksIr

miksir@home:~$
file_include.php
$blabla = create_function(...);

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

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

-~{}~ 04.08.07 01:57:

Можно попробовать с pcntl_exec поиграться.
 

dimagolov

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

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

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

EntC

Новичок
К сожалению всё выше написанное это пока только догадки. Я так понимаю никто не сталкивался с такой задачей.

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

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

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

MiksIr

miksir@home:~$
Что вы курите...
# 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;');
 

cDLEON

Онанист РНРСlub
dimagolov
Для него критично потеря соединения с сокетом.
EntC
Всё таки посмотри ман по теме create_function....
 

Wicked

Новичок
EntC
что произойдет, если сокет все таки порвется по независящим от вас причинам?

Имхо нужно написать приложение так, чтобы оно могло нормально оправляться после такого случая, ибо они БУДУТ возникать. А если вы сделаете такое приложение, тогда и вручную ненадолго закрывать сокеты не будет проблемой. Иначе я вам могу только посочувствовать...
 

EntC

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

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

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