PHP class vélemény
Sziasztok!
Úgy érzem, hogy most már továbbléphetek egy másik programozási "taktika" felé (Bocs, ha most egy nagy marhaságot írtam :D), ezért nekiálltam egy kis olvasás után ezt megírni. Egy rendszerbe lenne beleépítve. Kérdésem annyi lenne, hogy ez így valahogy elfogadható-e, továbbtanulás szempontjából, és hogy gyorsabb-e egy ilyen osztály, mint 8 változó használata?
(Tudom, a kivételeknek majd utána kell néznem.)
■ Úgy érzem, hogy most már továbbléphetek egy másik programozási "taktika" felé (Bocs, ha most egy nagy marhaságot írtam :D), ezért nekiálltam egy kis olvasás után ezt megírni. Egy rendszerbe lenne beleépítve. Kérdésem annyi lenne, hogy ez így valahogy elfogadható-e, továbbtanulás szempontjából, és hogy gyorsabb-e egy ilyen osztály, mint 8 változó használata?
(Tudom, a kivételeknek majd utána kell néznem.)
- class Uzenet{
- //hiba kijelzése?
- private $hibajelzes = false;
- private $profilid = 0;//üzenet-tulajdonos profiljának ID-je
- private $tipus = 0;//1-szöveges, 2-szöveg+médiafájl
- private $id = 0;//üzenet-száma
- private $megjelen = Array();//üzenet tartalma
- private $profkep = "";//felhasználó profilképje (aktuális)
- private $mediafel = "";//HA tipus == 2, akkor a médiafájl tartalma
- private $akkorinev = "";//az akkori neve
- private $ido = Array();//üzenet idejét tartalmazó tömb
- public function setProfil($id)
- {
- if($id != "" && $id && $this)
- {
- $this->profilid = $id;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getProfil()
- {
- if($this->profilid != "" && $this->profilid && $this)
- {
- return $this->profilid;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setTipus($type)
- {
- if($type != "" && $type && $this)
- {
- $this->tipus = $type;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getTipus()
- {
- if($this->tipus != "" && $this->tipus && $this)
- {
- return $this->tipus;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setUzenetId($id)
- {
- if($id != "" && $id && $this)
- {
- $this->id = $id;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getUzenetId()
- {
- if($this->id != "" && $this->id && $this)
- {
- return $this->id;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setUzenet($el, $ma)
- {
- if($el != "" && $ma != "" && $el && $ma && $this)
- {
- $this->megjelen[0] = $el;
- $this->megjelen[1] = $ma;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getUzenet()
- {
- if($this->megjelen != "" && $this->megjelen && $this)
- {
- return $this->megjelen;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setImg($img)
- {
- if($img != "" && $img && $this)
- {
- $this->profkep = $img;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getImg()
- {
- if($this->profkep != "" && $this->profkep && $this)
- {
- return $this->profkep;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setImgUp($img)
- {
- if($img != "" && $img && $this)
- {
- $this->media = $img;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getImgUp()
- {
- if($this->media != "" && $this->media && $this)
- {
- return $this->media;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setDBNev($nev)
- {
- if($nev != "" && $nev && $this)
- {
- $this->akkorinev = $nev;
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getDBNev()
- {
- if($this->akkorinev != "" && $this->akkorinev && $this)
- {
- return $this->akkorinev;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- public function setIdo($ido)
- {
- if($ido != "" && $ido && $this)
- {
- for($io=0;$io<count(explode(",", $ido));$io++)
- {
- $val = $this->ido;
- $val[$io] = explode(",", $ido);
- $val[$io] = $val[$io][$io];
- }
- return true;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!2!";
- }
- }
- }
- public function getIdo()
- {
- $valt = "";
- if($this->ido != "" && $this->ido && $this)
- {
- for($iu=0;$iu<count($this->ido);$iu++)
- {
- $valt .= $this->ido[$iu];
- }
- if($valt != "" && $valt && $this)
- {
- return $valt;
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- else
- {
- if($this->hibajelzes == true)
- {
- return "!3!";
- }
- }
- }
- }
- $ll = new Uzenet;
- echo $ll->setUzenet("Rövid cím", "Hosszú üzenet");
- $lu = $ll->getUzenet();
- var_dump($lu);
Kezdetnek nem rossz, pár
-
if($id != "" && $id && $this)
A$this
elvileg mindig igaz, mivel az objektum példányosítva lett, tehát létezik. A$id
mindig igaz, ha a$id != ""
is igaz. Tehát végeredményben elég így:if ($id) {
Persze ez az ellenőrzés magában nem ér túl sokat.- a visszaadott hibakódjaid egyrészt nem túl beszédesek (ez nem olyan nagy gond, a fogadó oldalnak kell tudnia, mit jelentenek), másrészt viszont túl kevés van belőlük, mármint csak kétfajtát adsz vissza, de jóval többfajta hiba történhet. Ez azt jelenti, hogy a hibakezelésnek kell viszonylag bonyolultnak lennie.
-
public function setUzenet($el, $ma)
Este 11-kor én már nem fogom kitalálni, ezek a paraméterek miknek a rövidítései, és fél év múlva te sem fogod tudni.-
for($io=0;$io<count(explode(",", $ido));$io++)
Ez minden ciklusban lefuttatja az explode-ot, ami teljesen felesleges. Így jobb:for($io=0, $l = count(explode(",", $ido)); $io < $l; $io++)
- olvashatóbb a kód, ha az írásjelek közé szóközt teszel
- setter metódusokban a változó értékadását követően érdemes visszaadni a változót, így néha meg lehet spórolni egy plusz getter hívást: return $this->id = $id;
- a metódusaid eléggé hasonlítanak egymásra, a későbbiekben ezeket akár össze lehetne vonni eggyé, persze egy plusz paraméterrel
Inkább method chain
Miért?
Szerkesztve: közben leesett. A hozzászólások címeit sokszor nem látom, számomra ez használhatósági probléma már a kezdetek óta.
Sztem ezt ne
Nagyon verbose a kód szerintem
Ellenben a változók..
Ahogy Gábor is mondta.
Setter ami nem set-el
De mit csinál?
Kérdésed..
Gyorsabb-e? Nyilván nem, de nem észrevehető a lassulás. Hibamentesebb? Igen. Ez a lényeg. Bár ha gyorsaságon nem a futásidőt értjük, hanem a fejlesztésre fordított időt, akkor gyorsabb.
Amúgy használj egy jó IDE-t (PhpStorm a legjobb jelenleg, Eclipse PDT? is jó, az ingyen is van). Nehogy valaki elkezdjen sírni, hogy dehát Java, meg lassan indul el, meg 'mennyi memóriát eszik Atyaúristen!', mert sírvafakadok.
Hajrá!
Off: eclipse+java tegnap
tegnap megnéztem a netbeans, Ubuntu repoból elérhető változatát.
Sírva menekültem vissza az eclipse-hez.
Részben mert ocsmánynak tartom a swinges megjelenését, másrészt meg érezhetően lassúbb, mint az eclipse. Utóbbi csak lassan indul, de naponta/hetente/évente egyszer elviselhető.
Fontok?
Emlekbe
;)