ugrás a tartalomhoz

Feltételek, műveletek tárolása, futtatása

mdesign · 2011. Ápr. 12. (K), 09.41
Sziasztok!

Szeretnék eltárolni adatbázisban bizonyos műveleteket/ellenőrzéseket, amiket objektumokon szeretnék elvégezni később, ezáltal létrehozva egy alap szintű folyamatkezelő felületet.
Pár példa:

Feltétel:
return (User.last_login < MA-10nap)

Művelet:
if (User.login == 'admin' ) {User.credential = 'admin'}

Gondolom első körben egy parsert kellene írnom, utána pedig kiértékelni az eredményt.
Keresgéltem a témában, de nem sok sikerrel. Ha pár kulccszóval ki tudnátok segíteni, megköszönném:) Gondolom nem én vagyok az első aki ilyen feladattal találkozott és szeretnék megnézni pár megoldást, mielőtt megírom a sajátomat.

Köszi mindenkinek!
Üdv: Karesz
 
1

Nehéz

janoszen · 2011. Ápr. 12. (K), 09.52
Ez azért nehéz kérdés, mert ha evalt használsz, az szinte könyörög a code exec sebezhetőségért. Ha viszont nem, akkor egy metanyelvet kell alkotnod hozzá, ami nem feltétlenül egyszerű. Nekem az a tapasztalatom, hogy az ilyen mindenféle konfigurációt engedő PHP alkalmazások nagyon hamar felzabálják az összes rendelkezésre álló erőforrást. Ez részben köszönhető annak is, hogy szinte semmit nem lehet ebből az egészből cachelni.

Amire Neked igazából szükséged van, az egy embeddelhető scriptnyelv. Különösebb utánajárás nélkül azt mondanám, hogy próbálkozz meg a Lua-val, az eléggé lightweight, hogy akár működhessen is. Ráadásul van hozzá PHP extension is. Ha nagyon nagy léptékre akarsz skálázni, esetleg nézd meg a MapReduce nyelvet, bár ez esetben az ilyen célra gyártott adatbázist nem fogod megúszni.
2

az

mdesign · 2011. Ápr. 12. (K), 10.43
Én is pont ezért fázok a php közvetlen alkalmazásáttól.
Utánaolvasok az általad említetteknek.
Köszönöm!
3

Én egyelőre az okát nem

inf · 2011. Ápr. 12. (K), 16.19
Én egyelőre az okát nem értem, hogy miért van szükség minderre. Ha elmagyaráznád, lehet, hogy ki tudnánk találni jobb megoldást is a problémádra.
4

az ok

mdesign · 2011. Ápr. 13. (Sze), 11.15
Egy felületet szeretnék adni a felhasználó kezébe ahol megadhatja az ügyeken elvégzendő folyamatokat.
Létrehozhasson különböző feladatokat, amiknek elvégzése további ellenőrzéseke/feladatokat indíthat. (sokféle folyamat lesz a rendszerben, ezért lenne szükség arra, hogy ez ezek ne a forráskódban legyenek implementálva)

Pl:
Folyamat1:Értesítési_Emlékeztető:
- Leellenőrzi, hogy a ügy nyitott e (zárt ügyhöz nem indítunk emlékeztetőt)
- Leellenőrzi, hogy a ügyben van e már nyitott ÉrtesítésiEmlékeztető típusú tevékenység (egyszerre csak egy lehet nyitott minden ügyben)
- Ha ezek megvannak, akkor beszúrunk az ügybe egy új Értesítési_Emlékeztető típusú tevékenységet

Köszönöm szépen az ötleteket!