ugrás a tartalomhoz

php5 oop+smarty

juhasztibi · 2007. Nov. 1. (Cs), 17.15
Sziasztok!

Lehet, hogy kicsit lassan haladok a korral, de én még csak most jutottam el odáig, hogy felhagyjak a html-be ágyazott php kódok írásával. Ehhez a váltáshoz kérném a segítségeteket.
Sok helyen hallottam, hogy érdemes objektum orientált szemléletre váltani, hiszen így könynedén felhasználhatom bárhol az aktuális kódrészletet. Kis iránymutatás kellene, hogy mégis, hogy tudnám az eddig megírt függvényeimet mint pl egy beléptető rendszer ami kb 5-6 függvényből áll átültetni egy oop megoldásba. Na és ami hab a tortán az a smarty. Telepítettem, probálgattam. De hogy tudom smartyval hogy tudom kezelni a függvényeimet illetve majd az osztályaimat. Ha valaki megtenné, hogy ellát instrukciókkal annak nagyon hálás lennék. Nagyon örülnék esetleg jól használható doksiknak is!

Előre is köszönöm a segítségeket!

Üdv,
T.
 
1

Smarty vs. OOP

janoszen · 2007. Nov. 1. (Cs), 17.34
A Smarty csak az egyszerű class operátort támogatja, tehát {$valami->valami()} de ennél többet nem. Ergó, ennyit tudsz csinálni.

Egyébként mi a kérdés?
4

értem

juhasztibi · 2007. Nov. 1. (Cs), 18.39
Konkrétan az lett volna a kérdésem így végigolvasva a hozzászólásokat, hogy ugye a jobb átláthatóság miatt szeretnék oop programozásra váltani, ezzel sokan egyetértenek sokan nem. Ezt most nem itt és most szeretném megvitatni. Tehát a konkrét kérdés az lenne, hogy ha léteznek bizonyos függvényeim amik kezelnek bizonyos dolgokat, akkor ezeket hogy tudom átültetni objektum orientált rendszerbe. Vagyis, hogy tudom használni az osztályokat ugyan arra a funkció ellátására, amit eddig egy-egy függvény látott el. Azt tudom, hogy a függvényeket osztályokba rendezve szépen elkülöníthetem. De nem tudom, hogy tudom az osztályokba rendezett függvényeimet használni. Azt hiszem sikerült összevissza megfogalmazi mit is akarok. Na igen és ez mellé párosul még a smarty. Tudom most is majd páran azt válaszolják, hogy minek smarty... írj sajátot.... Én úgy gondolom, hogy nem állok olyan szinten, hogy ezt megvalosítsam, szeretném elsajátítani az oop programozási módszert és a smarty sablonrendszer használatát. Ha ezek megvannak utána jöhet egy saját sablonkezelő.

Előre is köszi mindenkinek!

T
5

kb így

winston · 2007. Nov. 1. (Cs), 18.49
a smarty egy jó dolog, nem kell sajátot írj, ha nem érzel rá késztetést ;)

ami a függvények használatát jelenti: igen, első lépésben "csoportosítod" őket, összetartozás szerint, majd ez alapján megcsinálod az osztályokat. ami fontos, hogy a függvényeid alapvetően két fajták lesznek: statikus és sima metódus. a sima osztálymetódusokat csak az adott objektumra tudod használni, amiből hívod. annak értékeit kezeli, azzal csinál valamit. a statikus hívható máshonnan is, másra is, DE ha csak statikusba teszed be a függvényeid, akkor az még nem oo, az egyszerűen függvénycsoportosítás. remélem sikerült vázolnom a helyzetet, bár magát az oo-t ennyiben nem lehet. tanácsolom, hogy olvasgass kicsit a témában, nézz meg pár példát, és máris érezni fogod, hogy melyik függvény hova menjen ;)
8

drupal

juhasztibi · 2007. Nov. 1. (Cs), 19.16
Köszönöm a válaszodat, még annyit kérdeznék, hogy ugye egy osztályon belül van mondjuk 4 függvény, mind más értékkel tér vissza, de egy folyamat részét képzi mind. A visszakapott értékek lesznek az osztály tulajdonságai? Vagy az objektum fog rendelkezni az összes visszatérési értékkel amiket a függvények adnak? Vagy mindkettő?
Példákat nézegetek, könyvet is vettem:) (Bevezetés a PHP5 programozásba). Mondjuk ha a drupla kódját nézegetem az jó irányadó lehet?

Köszi,

T.
11

nem drupal

winston · 2007. Nov. 1. (Cs), 19.33
- az osztály tulajdonságai (attribútumai) azok lesznek, amiket TE adsz meg
- a drupal nem lesz jó, konkrétan példa-forrásokat, leírásokat keress először
12

bármi?

juhasztibi · 2007. Nov. 1. (Cs), 19.38
Azt gondoltam, hogy az osztály attribútumai azok a benne létrehozott függvény visszatérési értékei. Végül is azok is lehetnek és ezen kívűl még bármi?
Esetleg nem ismersz valami hasznos doksit?
13

nem szerencsés

winston · 2007. Nov. 1. (Cs), 20.00
akár az is lehet, ha azt akarod, a függvények értékei, de nem szerencsés ilyen kötöttségeket felállítani. a függvények inkább az osztály api-ját határozzák meg. hasznos doksi minden, ami oo-val foglalkozik. online, és offline. mindenesetre rengeteg oldalon van róla info, angolul és magyarul egyaránt.
14

hm

juhasztibi · 2007. Nov. 1. (Cs), 20.15
Akkor nem teljesen értem, mi a dolguk a függvényeimnek? Hova kerülnek, hol kerülnek felhasználásra a fügvvények eredményei? Az osztály akkor milyen értékekkel "dolgozik"? Mi alapján adunk értékeket neki ha nem a függvények eredményei alapján?
15

példa

winston · 2007. Nov. 1. (Cs), 20.37
az osztály egy entitást ír le, absztraktat, vagy kevésbé absztraktat. legyen például az az osztály, hogy "alma". ez pl. így néz ki:
class apple
{

  protected $color;
  protected $weight;
  protected $number_of_pips; //ezek az osztály attribútumai, private hozzáférhetőséggel

  public function __construct($color) //ez a konstruktor, ez hoz létre egy példányt az osztályból (objektum)
  {
    $this->color = $color;
    $this->weight = 60;
    $this->number_of_pips = 4;
  }

  public function eat($size)
  {
    $this->weight = $this->weight - $size;
  }

  public function get_color()
  {
    return $this->color;
  }

}
ezt aztán így használhatod:
$my_apple = new apple();
$my_apple->get_color();
$my_apple->eat(32);
de a többinek (statikus függvényeknek, leszármaztatásnak, absztrakt osztályoknak, miegyébnek) már tényleg nézz utána, nem kell sok kreativitás hozzá. a phpnet link, amit fenn adtam, kiváló kiindulási pont.
16

Köszönöm

juhasztibi · 2007. Nov. 1. (Cs), 21.19
Köszönöm a válaszaidat, utánanézek a dolognak. Ha esetleg majd valahol elakadok akkor megírom majd ide, addig is mindent köszönök!

Üdv,

T.
2

OOP és Smarty

Balogh Tibor · 2007. Nov. 1. (Cs), 17.57
Az, hogy egy kódot újra tudsz-e hasznosítani nem áll ok-okozati összefüggésben az osztályok használatával. Lehet élni osztályok nélkül is. Olyan hitvita féle, hogy márpedig objektumorientáltankellprogramozni. Akkor esetleg tessék összevetni a Joomla és a Drupál kódját.

Az újrahasználhatóság inkább attól függ, hogy mennyire specifikusak (remélemezamegfeleőszó) a függvényeid, nem pedig attól, hogy szerepel-e a kódban a class utasítás.

A sablonozás használatakor szerintem két fontos dolog van. Az egyik, hogy lehetőleg kikényszerítse, hogy a script futásának a menete a következő legyen: adatok fogadása, adatok ellenőrzése, adatok feldolgozása, adatok kiíratása. A másik, hogy a sablon csak a számára lényeges változókat érje el.
3

oo?

winston · 2007. Nov. 1. (Cs), 18.21
két apró kötekedés. úgy értem, szakmai szempontból:

1. a class nem utasítás. nyelvi elem
2. nagy kódbázist, projektet karbantartani, és tervezni lényegesen nehezebb nem oo paradigmával. nem csak webes téren. egy nagy projektben egy uml (ami bezony elég oo alapú, ugye erősen épít a class diagramra és hasonlóakra) nagyon meg tudja könnyíteni az életed.
6

újrahasznosíthatóság és az OOP

Fraki · 2007. Nov. 1. (Cs), 18.52
Ettől függetlenül az újrahasznosíthatóság és az OOP nem áll egymással közvetlen összefüggésben.
7

nem vitatom

winston · 2007. Nov. 1. (Cs), 19.09
azt a részét egyátalán nem is vitatom. egy függvény ugyan úgy újrahasználható, ha rendesen meg van írva.
9

igen

juhasztibi · 2007. Nov. 1. (Cs), 19.17
igen ezzel én is egyetértek, nem elsősorban ez ami az oop-re késztet.
10

Akkor rendben is vagyunk

Balogh Tibor · 2007. Nov. 1. (Cs), 19.19
Akkor rendben is vagyunk.
Fraki leírta amit írhattam volna. Nem azt írtam, hogy az objektumorientáltság rosssz lenne. Ezt te olvastad bele a hozzászólásomba.

Az, hogy a class mi a szösz, most nem mondanám meg pontosan. Szerintem deklaráló utasítás. De ez csak egy cimke. Felőlem hívhatod nyelvi elemnek is.
17

ha nem is közvetlen összefüggés...

Hodicska Gergely · 2007. Nov. 2. (P), 00.22
http://weblabor.hu/cikkek/oopkodujrahasznositas


Üdv,
Felhő