Hollosi Information eXchange /HIX/
HIX CODER 2085
Copyright (C) HIX
2004-05-27
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 PHP vagy Perl - parbeszedes program weben at (mind)  55 sor     (cikkei)
2 Re: ODBC adaforras letrehozasa programbol (mind)  5 sor     (cikkei)

+ - PHP vagy Perl - parbeszedes program weben at (mind) VÁLASZ  Feladó: (cikkei)

Shell modban egy parbeszedes program ugy mukodik, hogy mondjuk a user ir egy
sort, a program valaszol valamit, megint a user, megint a program, stb. Az,
hogy a user epp hol tart, milyen fazisnal, az impliciten be van kodolva,
hiszen epp ahol tart a program szovegeben.

Webes konyezetben viszont ugyanez ugy nez ki, hogy a program megkapja a user
inputot, kiirja a valaszt, majd vegeter. A user ujra ir valamit, azt a
program megint az elejen kapja meg, a session-bol kitalalja, hogy hol is
tartott a user, es kikopi a kovetkezo valaszt, majd vegeter, stb. Az, hogy a
user epp hol tart, expliciten nyilvantartando, es ezeket a program egy
kozponti helyerol kell meghivogatni. Ettol viszont a debuggolas nehezkes.

Az idealis egy olyan modszer/library/kornyezet lenne, amely ugyanazt a
programot tudna mindket modban futtatni. Debuggolashoz hasznosabb lenne a
shell mode, utana pedig transzparens modon lehetne weben futtani.

Egy nem tul elegans megoldas a kovetkezo: a shell-tipusu programban minden
I/O-t egy altalanos print_this_and_get_user_input() fuggvennyell megoldani,
amelyek elso parametere egy sorszam, es a hivast egy ugyanilyen cimke
koveti, tehat

dispatcher();
akarmi;
akarmi;
$from_user = print_this_and_get_user_input(1, "first output"); label
LABEL_1;
akarmi;
akarmi;
$from_user = print_this_and_get_user_input(2, "second output"); label
LABEL_2;
akarmi;
akarmi;
$from_user = print_this_and_get_user_input(3, "third output"); label
LABEL_3;

Amikor shell modban fut, akkor nyilvan minden jol mukodik, a dispatcher()
nem csinal semmit.

Amikor web modban megy, akkor a print_this_and_get_user_input() elmenti az
osszes valtozot, es a sajat cimkejet is. A dispatcher() ertelmezi a web
valtozokat, beleteszi az inputot a $from_user valtozoba, visszatolti a
session valtozokat, es csinal egy GOTO-t a megfelelo cimkere.

Ez nem annyira bonyolult, de nem tul szep, es konnyu elrontani a szamozast
(mondjuk ennek az ellenorzesere is lehet egy programot irni). Es kulonben is
csak Perl-ben menne, mert PHP-ben nincs GOTO.

De nem hiszem, hogy ez masnak ne jutott volna mar eszebe, es talan van is ra
valamilyen jobb/szebb/ertelmesebb megoldas, nem akarom ujra feltalalni a
fakereket, ha mar van gumikerek is.

Hol lehetne ilyet talalni?

Koszonom,
Jozsi.
+ - Re: ODBC adaforras letrehozasa programbol (mind) VÁLASZ  Feladó: (cikkei)

Hi Coders!

Mindenkinek nagyonszépen köszi a válaszokat. Probléma megoldódott.

Vili

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS