Kezdőoldal » Számítástechnika » Programozás » PHP vendégkönyv objektum...

PHP vendégkönyv objektum orientált megközelítésben. Hogyan is csináljam?

Figyelt kérdés

Szóval a kérdés adott. Milyen objektumokat használjak egy vendégkönyvnél:

database.class -> feltételezem egyértelmű

validate.class -> szabályaimnak megfelelőek-e az inputok...

cpatcha.class -> szöveges matematikai captcha (öt plusz öt stb...)

html.class -> itt csak a form van...


Kell-e esetleg egy vendégkönyv class is, vagy arra nincs szükség mert amikor submit-olják a formot, akkor egy script meghívódik és az olyan mint egy controller?


BUÉK



2014. jan. 2. 01:11
 1/2 anonim ***** válasza:

Ez a megközelítés így nem teljesen objektum orientált azért.

Attól, hogy osztályokat teszel bele, még nem lesz minden OOP azonnal.


Alapvetően úgy kéne nézni a rendszert, hogy mondjuk maguk a bejegyzések egy "bejegyzés" osztály objektumai mondjuk.

Az itt felsoroktakból osztályként max az adatbázisnak és a captcha-nak van értelme, a többinek nem.


Az input validálást magába a post mentésébe kellene már betenni, hogy megfelelő adatokat akar-e tárolni az ember.

A HTML pedig megint egy másik dolog.

2014. jan. 2. 01:23
Hasznos számodra ez a válasz?
 2/2 anonim válasza:

Én így csinálnám:


class.post.php

class.db.php

class.post_handle.php

class.validate.php (egy kis vendégkönyv esetén én lehet, hogy létre sem hoznám ezt az osztályt)

class.captcha.php



class.db.php osztályt a PDO-ból származtatnám, egyetlen tulajdonsága lenne, mondjuk egy db_handle amit egyenlővé tennék a konstruktorban a PDO-ból példányosított objektummal. Mást nem tennék bele.


class.post.php lenne a bejegyzés "sablonja". Szóval ebből az osztályból példányosított objektumok a következő metódusokkal rendelkeznének pl.: getTitle(), getContent(), getDate(), getId() stb. stb.


class.post_handle.php osztályt a class.db.php-ből származtatnám, így a $this->db_handle tulajdonságon kereszetül már közvetlenül tud kommunikálni az adatbázissal. Olyan metódusai lennének mint pl.:

getAll() - (visszaadja az összes bejegyzést egy tömbben melynek minden eleme egy class.post.php-ből példányosított objektum)

getById() - (visszaadja az adott id-vel rendelkező posztot objektumként)

insertPost($post_obj) - Adatbázisba írja az új postot, paraméterként egy post objektumot vár

stb. stb. stb.


A validate-re azért írtam, hogy nem biztos, hogy beletenném, mert ha csak egy nevet és egy szövegmezőt validálsz kb, akkor azt megteheted akár rögtön a PostHandle osztály insertPost() metódusában rögtön. Persze ha szeretnéd a validálást kiteheted külön osztályba is.


Én valószínűleg így gondolkoznék, remélem tudtam segíteni.

2014. jan. 3. 13:44
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!