Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Paginátor (stránkovanie výsledkov) v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
David Hynek
Tvůrce
Avatar
Odpovedá na Martin Konečný (pavelco1998)
David Hynek:1.8.2013 22:22

A není to už zbytečné kombinování? když teprve HTML kod vytvářím.
To co píše Kit beru. Ten můj kod je krátký, ale kdyby to bylo větší, už by případná úprava HTML byla komplikovanější. Díky

Odpovedať
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Martin Konečný (pavelco1998)
Kit:1.8.2013 22:24

DOMDocument je datová struktura typu strom. Je na zvážení, zda nejprve nasázím odkazy do array() a pak je teprve hromadně převedu do DOMDocument nebo to nahážu do DOMDocument přímo. Při generování stromu už musíš ošetřit stringy, což patří už do prezentační části. Ovšem tato část aplikace se stejně dává do vieweru, tak by to nemělo vadit.

Osobně bych použil přímo DOMDocument, ale nechtěl jsem tím David Hynek zatěžovat. Patří to mezi pokročilé techniky, které nezvládá mnoho profesionálů a místo toho se vrhají na Smarty.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hynek
Kit:1.8.2013 22:28

Když používáš DOMDocument, tak ve skriptu neuvidíš ani kousek HTML. Ta třída ho generuje sama, výsledkem je vždy validní XML nebo jeho fragment. Ten tvůj kód by se tím zkrátil.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Martin Konečný (pavelco1998):1.8.2013 22:52

Kite, děkuji za vysvětlení.

Davide, co se ještě týká samotného Paginatoru, tak osobně mi kód přijde poměrně nepřehledný. Myslím, že nebudu jediný, komu tam chybí mezery mezi operátory (btw, někde mezery jsou, někde ne - asi by to chtělo psát jedním stylem).

Také bych byl trošku opatrnější s použitím ternárního operátoru. Například na tomto řádku

$n = ($a+$p-((($p-1)<$this->roztec)?$p-1:($p<($this->rozsah-$this->roztec)?$this->roztec:$p-$this->rozsah+(2*$this->roztec))));

mi přijde, že to přehlednost spíše zhoršilo než zlepšilo.

Taktéž bych v každém případě nevolil jednopísmenný název proměnných (kromě těch, které slouží k inkrementaci (např. pro cyklus for)).

Pak jsem ještě zvyklý psát bloky i v případě, že následuje jen jednořádkový příkaz, také si myslím, že to přidá přehlednosti.

Odpovedať
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hynek
Kit:1.8.2013 22:53

Ještě koukám na tvůj zápis

if($this->celkem == 0) return "\tNejsou zde žádné výpisy.\n";

který není zrovna ideální. Představ si, že bych při prázdném seznamu chtěl generovat jiný nápis nebo bych nechtěl generovat nic. Běžně se v seznamu něco vyskytovat bude, pokud tam nebude nic, bude to výjimka:

if($this->celkem == 0) throw new Exception("Nejsou zde žádné výpisy.");

A je to. Samozřejmě je vhodné místo Exception vyrobit nějakého potomka, aby se to nemíchalo s běhovými chybami, ale pro tento účel jsem to zjednodušil.

Výhodou výjimek je mimo jiné také to, že mohou mít jiný typ návratové hodnoty než výsledek funkce. Pokud je výsledek parametrem jiné metody, ta se už neprovede. Není tedy nutné testovat data při předávání mezi objekty. Ošetření výjimky se dá udělat klidně i jediné pro celou aplikaci.

Editované
Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hynek
Tvůrce
Avatar
Odpovedá na Martin Konečný (pavelco1998)
David Hynek:2.8.2013 0:17

:) tohle je paráda. Pohled od profíků je cennější než sebelepší tutoriál.

Než sem dám nějaký další svůj script tak se zkusím zlepšit.

Díky moc chlapi.

Odpovedať
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hynek
Kit:2.8.2013 1:30

Neboj se toho a dávej sem další skripty. Možná bude výhodnější použít http://www.itnetwork.cz/dev-lighter

Na hodně postupů platí obyčejný selský rozum. Seznam, tabulka (slovník), pole, strom a množina. Někdy si stačí jen říct nahlas, co chceš vytvořit. Ostatní už jen bývá okolní omáčka.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 7 správy z 17.