Fórum: php5,smarty3,mysql
2010-01-25T12:52:33+01:00
2010-01-25T16:32:07+01:00
2022-07-25T07:21:14+02:00
  • A Smarty-ban az igazi szépséget az jelenti, hogy több mélységig egybeágyazhatóak a template-ek.

    Tehát véleményem szerint minden oldalad meg kell feleljen egy db TPL fájlnak. Ezen belül minden oldalra include-olni kell a header és footer TPL fájlokat. Ill. minden - a teljes webalkalmazásban több alkalommal felhasznált komponenshez - kell írni egy külön TPL fájlt. Tehát pl. lehet egy olyan komponensed, ami egy dinamikus (javascript-es) menüt implementál.
    Mutasd a teljes hozzászólást!
  • példányosítás: java-ban igen, de itt nem:)

    én a tpl-eket tudom használni, itt az a kérdés, hogy hogyan használjam. darabolva, vagy egyben. Itt főképp olyan véleményét szeretném hallani, aki már csinálja egy ideje, hogy melyik a jobb?
    Mutasd a teljes hozzászólást!
  • Smarty 3 nem tudom mitől OO még sose láttam smartyt.
    Nézz bele a kódjába. Megnéztem a 3ast, osztályokból áll, de nem tudom összehasonlítani a régiekkel (mert azok is)

    Példányosítás:
    Na és miért nem példányosítod?
    (Javában is elengedhetetlen, pl a User osztályból egy példányt létrehozni, vagy akármi).

    Hát igen, ez phpnál nem így működik. (Viszont a servleteknél igen.) Itt ahogy kiment a kimenet, megszűnik az oldal.

    Auth:
    Adatbázisba eltárolod a felhasználónevet és a jelszó hasht (mondjuk md5).
    A felhasználó be akar lépni, megadja a felhasználónevet és jelszót. Lekéred az adatbázisból azt a sort ahol a felhasználónév és az md5(jelszó) szerepel. Ha van ilyen sor, akkor jó a jelszó, ha nincs akkor hiba. Ezek után a $_SESSION["belepett"] = true; és innentől ezt a változót ellenőrzöd.

    Hogy áll össze a fórum a tplekből:
    Nézz meg egy tplt:

    <HTML> <HEAD> {popup_init src="/javascripts/overlib.js"} <TITLE>{$title} - {$Name}</TITLE> </HEAD> <BODY bgcolor="#ffffff">

    Ezt most hirtelen abban találtam amit letöltöttem. (3as smarty)
    Van egy fv a smarty templateben, ami létrehozza a kimentet (renderTemplate , smarty_internal_compile_*.php-k)

    Amúgy ezek nem véletlen opensourceok, nézz bele a forrásba.
    Mutasd a teljes hozzászólást!
  • tudom, hogy MVC miatt van így, oo-ra csak annyi a kérdés, hogy a smarty3 mitól oo?

    az alatt ,hogy nem példányosítom, azt értettem:
    Osztály::Metódus($paraméter);

    PHP-JAVA összehasonlításban azt értem, hogy pl létre hozok egy fórum osztályt, lekérdezem a hozzászólásokat, és bele teszem, lejön az oldal, kiíratom, megszűnik a fórum, ha hozzászól a felhasznál, megint mindent lekérek újra. Desktop alkalmazásban (most itt ezt értettem java alatt, nem a JSP-t, servletet, stb, my fault) pedig példányosítom, bele teszem amit lekérdeztem, és ott van, amíg akarom

    Authentikáció: nálam eltárolom a jelszó hash-ét, nála meg a jelszót, és minden oldallehozásnál legyártom a jelszavából a hash-t és összehasonlítom, vagy hogy?

    Itt most a legérdekesebb számomra a kérdés eleje volt, hogy hogy áll össze a fórum a tpl-ekből, de ezt nem hiszem, hogy a google megmondja. Ok, az Authentikáció biztos meglett volna többféleképpen is
    Mutasd a teljes hozzászólást!
  • Jól összekuszáltad a dolgokat..

    A tpl-es megoldás nem OO, hanem MVC miatt van így.

    A példányosítás dolgot nem értem, nekem a java volt furcsa php után.

    PHP: bejön a kérés -> beparseolja a fájlokat, létrehozza az objektumokat, megcsinálja a dolgát majd kilöki a kimenetet és leépíti az objektumokat.

    JAVA: induláskor létrehozza magát -> bejön a kérés -> ami kell azt létrehozza -> kilöki a kimenetet -> majd valamikor megszünteti ami nem kell.


    mysqli , creole

    a mysqli a php beépített cucca, a creole ehhez nyújt(hat) plusz funkciókat (úgy látom ebben a creoleban a preparedstatementek jobbak)

    Tárolt eljárások, ahogy akarod. (érdemes lehet)

    Authentikáció: SESSION!
    Nem tárolunk jelszót, csak jelszó hasht. Azt se küldjük vissza a felhasználónak.

    Amúgy ezekről a googleban simán utána tudtál volna olvasni
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Engem ez a dolog így elméletileg, szerkezetileg érdekel. A fórum legyen egy példa. Szóval hogy oldja meg az ember?

    Legyen mondjuk oop, akkor csinálok egy fórum objektumot, ami tartalmaz nyitó hozzászólás objektumot, meg hozzászólás objeltumokat, meg mittomén még mit, és tartalmaz. És akkor lenne külön hozzászólás tpl. A hozzászólás objektumban a hozzászólás paramétereit megkapná ez a tpl, és vissza tér a kész hozzászólás html-el, dwoo-ban ez így néz ki
    $dwoo->get('hozzaszolas.tpl', $data);
    biztos smarty-ban is van ilyen.. van?
    na és akkor így objektumokból és tpl-ekből állna össze a dolog. Ennél biztos többől, mint amit itt a példában írtam.

    Másik lehetőség: van egy fórum.tpl, és a hozzászólásokat tömbben kapja meg assign-al, és kiírja őket egy foreach-el vagy select-el.

    Viszont ez valahogy számomra egyáltalán nem adja az objektumorientáltságot. Igazából valahogy nekem a php eleve nem jön össze az objektudosdival. Egy java-ban megcsinálok egy objektumot, csomó dologra használom, aztán majd megszüntetem, ha akarom. Php-van mag egy oldal lehozása után megszűnik. Én eddig az objektumokat leginkább mint csomatot, fügvények kupacát használtam, ráadásul példányosítás nélkül amit ugye a php megeszik.

    akkor a smarty3-ról: ok, beta még, nem baj:) Viszont annyira nem találtam leírást arról, hogy ez mit tud, amit a 2.* nem, objektumos példákat, ilyesmi. Tudtok ilyen linket adni? Még azt sem tudom, mi egy sablonozónál az objektum.

    mysql-ről:
    érdemes valami Creole (http://creole.phpdb.org/trac/) szerű osztályt használni? Ha nem ezt, akkor mit? Így elsőre nem láttam meg benne a csodát.


    if ($result = $mysqli->query($query)) { do{ while ($row = $result->fetch_array()){ array_push($array,$row); } } while ($mysqli->next_result()); }

    Helyett ezt:
    $rs = $stmt->executeQuery($query); while ($rs->next()) { $row = $rs->getRow(); array_push($array,$row); }

    3 sorral rövidebb... na és? de valamiért mégis szeretik.. Mire jó ez?

    Másik kérdés: érdemes tárolt eljárásokat írni, vagy inkább legyen minden a kódban?

    Na akkor még egy dolog az authentikásióról:
    hogy is kell ezt? az ugye mégsem jó, hogy a jelszót meg a felhasználónevet tárolni egy sütiban. És akkor minden oldallekérésnél ellenőrizni. Viszont az sem jó, hogy belép, és akkor egy nullát egyre írni a sütiban, meg azt meg bárki átírhatja a saját gépén, nem? akkor hogy megy ez?

    Ok, ez így elég sok kérdés, de ha csak egyre is válaszolnál, kérlek, ne fogd vissza magad. Ez már így gyülemlett, hogy megkérdezzem:)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd