Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 22 ] 
AutorSpráva
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok NapísalOffline : 08.11.2014 22:24

V PHP sa stále nepovažujem za viac ako začiatočníka a preto moje kódy vyzerajú zle. Jedno cez druhé poprepletané, číta sa to zle, opravuje/upravuje sa to zle a škaredo to vyzerá. Takže moja otázka - ako odprasačiť kód? Ako docieliť čistý a prehľadný kód? Obávam sa, že dobrý editor na to stačiť nebude...
Zatiaľ viacmenej nepoužívam OOP, iba ak užívam nejakú hotovú vec (napr. simple image a pod.)

Ukážka môjho kódu, ktorého úlohou je vygenerovať .doc dokumenty podľa zadaných údajov a údajov vybraných z databázy... Ako by sa dal tento svinčík upratať?

Kód:
case "contract":
        /*Vytvaranie dokumentov klientom*/
        if(isset($_POST["generate"])) {

        // generovanie zmluvy samotnej
             $personal=include("modules/klient-subory/client-contract.php");
              $filename=string::SEOText($_POST["client_name"])."-zmluva.doc";
              $mod="w";
              $file=fopen($filename, $mod);
              if($fileSave=fwrite($file, $personal))
                echo 'Zmluva s klientom bola úspešne vygenerovaná';
            echo ' <a href="'.$filename.'">Stiahnúť do Wordu</a><br>';     

        // generovanie súhlasu so sprac. os. udajov
             $personal=include("modules/klient-subory/personal-information.php");
              //var_dump($contract);
              $filename=string::SEOText($_POST["client_name"])."-spracovanie-osobnych-udajov.doc";
              $mod="w";
              $file=fopen($filename, $mod);
              if($fileSave=fwrite($file, $personal))
                echo 'Súhlas so spracovaním os. údaj. bol úspešne vygenerovaný';
            echo ' <a href="'.$filename.'">Stiahnúť do Wordu</a><br>';   

        // generovanie dodatku k zmluve
              $contract=include("modules/klient-subory/dodatok.php");
              //var_dump($contract);
              $filename=string::SEOText($_POST["client_name"])."-dodatok.doc";
              $mod="w";
              $file=fopen($filename, $mod);
              if($fileSave=fwrite($file, $contract))
                echo 'Dodatok bol úspešne vygenerovaný';
            echo ' <a href="'.$filename.'">Stiahnúť do Wordu</a>';
            }         

            if(isset($_POST["submit"])&&!empty($_POST["client"])) { // časť keď už je vybrany opatrovatel
            $select="SELECT * FROM ".TABLE_PREFIX."client WHERE client_id=".$_POST["client"];
            $query=mysql_query($select);
            $RowG=mysql_fetch_array($query);
            echo '<h1>Generovať dokumenty pre klienta - '.$RowG["client_name"].'</h1>';
           
            ?>
            <div class="sidebar left">
            <?
            include("include/sideclient.php");
            ?>
            </div><!--sidebar-->   
            <div class="main right">
                <form method="post">
                    <h2>Vyplňte nasledovné informácie</h2>
                    Vyplňte nižšie uvedené informácie, ak ešte nie sú predvyplnené a klikni "generovať". Program vygeneruje zmluvu s klientom,
                    dodatok k zmluve a súhlas so spracovaním osobných údajov<br><br>
                   <label for="client_name">Meno klienta: </label>
                <input type="text" name="client_name" id="client_name" value="<?=$RowG["client_name"]?>">
                <label for="client_address">Adresa klienta: </label>
                <input type="text" name="client_address" id="client_address" value="<?=$RowG["client_address"]?>">
                <label for="client_birthday">Dátum narodenia: </label>
                <input type="text" name="client_birthday" id="datepicker_birthday" value="<?=$RowG["client_birthday"]?>">
                <label for="client_start">Začiatok poskytovania služby: </label>
                <input type="text" name="client_start" id="datepicker_start" value="<?=$RowG["client_start"]?>">
                <label for="client_time_week_from">Čas začiatku služby v týždni: </label>
                <input type="text" name="client_time_week_from" id="client_time_week_from" placeholder="formát napr. 8:15" value="<?=$RowG["client_time_week_from"]?>">
                <label for="client_time_week_to">Čas konca služby v týždni: </label>
                <input type="text" name="client_time_week_to" id="client_time_week_to" placeholder="formát napr. 15:15" value="<?=$RowG["client_time_week_to"]?>">
                <label for="client_time_weekend_from">Čas začiatku služby cez víkendy a sviatky: </label>
                <input type="text" name="client_time_weekend_from" id="client_time_weekend_from" placeholder="formát napr. 9:00" value="<?=$RowG["client_time_weekend_from"]?>">
                <label for="client_time_weekend_to">Čas konca služby cez víkendy a sviatky: </label>
                <input type="text" name="client_time_weekend_to" id="client_time_weekend_to" placeholder="formát napr. 12:00" value="<?=$RowG["client_time_weekend_to"]?>">
                <label for="client_pay">Platba na deň v €</label>
                <input type="text" name="client_pay" id="client_pay" value="<?=$RowG["client_pay"]?>">
               
                <label for="dodatok_number">Číslo dodatku</label>
                <input type="text" name="dodatok_number" id="dodatok_number" value="">
                <label for="contract_number">Číslo zmluvy</label>
                <input type="text" name="contract_number" id="contract_number" value="napr. OS/003">
                <label for="client_regular_pay">Počet pracovných dní na rozúčtovanie </label>
                <input type="text" name="client_regular_pay" id="client_regular_pay" value="Výpočet do dokumentu prebehne automaticky">

                    <input type="submit" name="generate" id="generate" value="Vygenerovať">
                </form>           
            </div>
            <div class="both"></div>
            <?
        } else { // keď ešte nie je vybrany, zobrazi sa selectbox
       
        $sql="SELECT client_name ,client_id FROM ".TABLE_PREFIX."client WHERE 1";
        $Query=mysql_query($sql);
        ?>
        <h1>Vygenerovať dokumenty - klient</h1>
        <div class="sidebar left">
            <?
            include("include/sideclient.php");
            ?>
        </div><!--sidebar-->   
        <div class="main right">
            <form method="post">
                <select name="client">
                    <?
                    while($RowC=mysql_fetch_array($Query)) {
                        echo '<option value="'.$RowC["client_id"].'">'.$RowC["client_name"].'</option>';
                    }
                    ?>
                </select>
                <input type="submit" name="submit" id="submit" value="Vybrať">
            </form>           
        </div>
        <div class="both"></div>   
        <? }
        break;


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Ako odprasačiť kódy?

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 08.11.2014 23:34

tie generovania by som spravil isto cez funkciu, html kodu sa nemas ako zbavit a asi ani toho ostatneho, ale nie som php koder, nemas to ako inac sprehladnit, isto by sa dal ten kod zmensit, podla mna je zbytocny takyto zapis:

Kód:
            $select="SELECT * FROM ".TABLE_PREFIX."client WHERE client_id=".$_POST["client"];
            $query=mysql_query($select);


a moze byt podla mna takto

Kód:
            $query=mysql_query("SELECT .....");


a takych novo vytvorenych premenny tam mas viac a dalej ich nepouzivas, trebars aj pri generovani dokumentu mas vsade

Kód:
              $mod="w";
              $file=fopen($filename, $mod);


preco to nemas

Kód:
              $file=fopen($filename, "w");


zbytocna premenna $mod podla mna, ale ako vravim, nie som koder, mozno pri tom query to nejaky vyznam ma aby si mal select v novej premennej, ale ja to vidim len ak by si dany select pouzil este dalej v kode co nepouzivas, takze je zbytocne ho mat v premennej...







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 08.11.2014 23:58

Nemá to význam... práveže ja som skorej chcel, že ako od seba odlíšiť, tam sa tuším berie zložka logická, zložka vypisovacia a ešte nejaká... nejaká architektúra sa to volá, ale ani panovi nemôžem prísť na to, že aká...


Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 09.11.2014 1:19

Ach, ty tam máš toľko problémov, že ani neviem, kde začať..

- zle nazvané premenné (čo je preboha napr RowG?) a nekonzistentné pomenúvanie (raz máš premenné s malým začiatočným písmenom, inde máš s veľkým...)
- porušuješ viaceré zásady čistého kódu, napr DRY
- SQL kód priamo vedľa html? to tam nemá čo robiť
- ani náznak OOP
- zbytočné komentáre (miesto toho treba použiť aspoň funkcie, pri ktorých bude jasné, o čo ide)
- používanie starých mysql_ funkcií
- desí ma, že toto všetko je v jedinom 'case'

Atď atď... Bolo by fajn si naštudovať, ako oddeliť od seba logické vrstvy... UI, business layer, data-access layer atď.. V angličtine sa tomu nadáva 3-tier architecture, tak aspoň tú keby si využil, vyzeralo by to trochu inak.







_________________
C#, PHP, ...
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 09.11.2014 12:09

Tak kde teda má ísť sql? OOP ako som písal zatiaľ nerobím.
Staré funkcie, pretože toto je zo starého systému. Pomenovanie premenných práve preto, že je to určitý systém doplnený o môj kód
DRY? To znamená, že na to, čo sa opakuje by som si mal vytvoriť funkciu?


Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 09.11.2014 12:25

Ak OOP využívať nechceš, tak by SQL malo ísť aspoň do extra funkcií (a do iného súboru).. Aby bolo jasné oddelenie logiky. Je to rovnaké, ako keby si miešal javascript, html a css v jedinom súbore (čo sa zdá podľa tohto kódu, že aspoň to nerobíš).

A hej, DRY je don't repeat yourself, čiže by si sa mal snažiť eliminovať opakovanie kódu. Keď si pozrieš tú svoju ukážku, neustále to porušuješ. Veľa vecí by sa dalo vybrať a porobiť z toho aspoň funkcie. Ak budeš v budúcnosti potrebovať urobiť zmenu, tak upravíš už len tú funkciu raz a bude vyriešené.

Inak, switch by nemal byť takýto obrovský...

Ono viacero vecí by bolo pre teba očividnejších, kebyže využívaš čistý OOP jazyk ako napr C#... Ten ťa tlačí aspoň do trošku čistejšieho kódu a je to lepšie vidno. Php dovoľuje neskutočné prasačiny.







_________________
C#, PHP, ...
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 09.11.2014 13:58

Ešte sa necítim byť dostatočne opradený skúsenosťami na to, aby som robil OOP a momentálne na to ani nemám čas, ale raz sa do toho pustím...


Offline

Správca fóra
Správca fóra
Ako odprasačiť kódy?

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 09.11.2014 14:07

Neviem síce, čo majú skúsenosti spoločné s OOP, ale určite sa ti bude lepšie pokračovať v nejakom ďalšom (poriadnom) programovacom jazyku, ak budeš poznať OOP - podobne som prechádzal z hobby PHP na Javu/C/C++ v škole a bol to pre mňa oveľa menší šok, ako pre spolužiakov so základmi nejakého pascalu.







_________________
always is always wrong
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 09.11.2014 14:57

Ja som toho názoru, že načo budem trepať hneď OOP, keď som ešte neprišiel do styku s niektorými PHP vecami ako napr DOM? OOP je podľa mňa pre pokročilých a ja sa zatiaľ ako pokročilý necítim (čo sa PHP týka). A na iný programovací jazyk neplánujem prejsť.


Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 09.11.2014 15:54

OOP nie je pre pokročilých, je to iný programátorský štýl. Nepracuješ s funkciami, ale s objektami, vlastnosťami a metódami. Nepotrebuješ prejsť všetky php funkcie, aby si mohol začal aplikovať OOP...... Výsledkom býva čistejší kód a častokrát sú veci jednoduchšie.







_________________
C#, PHP, ...
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 10.11.2014 7:42

Hmm... no... Skúsim sa teda tomu OOP pozrieť na zúbok

Ono svojim spôsobom aj teraz robím niekedy s OOP, ale ako som uviedol - iba ak treba šprtať do už hotových vecí


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 10.11.2014 10:07

OOP nie je nejaké zázračné riešenie a veľmi často prináša len väčšiu komplexitu (pretože najmä začiatočníci netušia, kde má zmysel použiť OOP a kde nie).

A k tomu tvojmu kódu. Najviac by asi pomohlo používať nejaký rozumný šablónovací systém (a potom by tam bolo jednoduchšie vidieť kód, ktorý sa stará o logiku).


Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 10.11.2014 12:08

Sranda, z môjho pohľadu je to presne naopak... Extra šablónovací systém nepovažujem za zázračné riešenie, lebo už samotné php je dostatočný šablónovací systém. V pohode na prehľadný kód stačí php. Pokiaľ ale človek bude písať kód bez OOP, vždy to bude len jedna veľká špageta.







_________________
C#, PHP, ...
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 10.11.2014 14:35

Php kód premiešaný útržkami html nebude nikdy prehľadný a funkcie sa dajú používať aj bez OOP. ;)


Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 10.11.2014 14:54

Čo to je šablonovaci system?


Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 10.11.2014 14:55

Funkcie áno, ale preboha OOP nie je o funkciách... Keby sme odignorovali všetky ostatné plusy OOP, tak stále ostáva jeden - je to omnoho intuitívnejšie a akonáhle človek do toho naozaj prenikne, nevidel som ešte žiadneho programátora, ktorý by sa potom chcel vrátiť k procedurálnemu programovaniu. Osobne si už vôbec nedokážem ani len predstaviť, ako by som naprogramoval veľký portál naozaj efektívne pomocou procedurálneho programovania... Pri php to človek nevidí až tak jasne, ale akonáhle robí s čisto OOP programovacími jazykmi, ako napr c#, kde je prakticky všetko objekt, tak začne chápať veľmi rýchlo...

Pokiaľ php použiješ ako šablónovací systém, teda nebudeš tam drbkať SQL príkazy ako Mego, ale daný súbor použiješ vyslovene len na vyrenderovanie požadovaného outputu, tak to neprehľadné nebude. Keď použiješ šablónovací systém, tak či tak tam musíš švahnúť renderovaciu logiku s tou-ktorou syntaxou, ale s tým, že sa ešte musíš učiť tú extra syntax. Nevravím, že je to náročné, ale IMO zbytočné, keď s php zvládneš urobiť to isté a človek, ktorý príde po tebe, sa aspoň nemusí učiť nové veci.

Mego, http://www.smarty.net/ je napr šablónovací engine...







_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Ako odprasačiť kódy?

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 10.11.2014 15:16

No preceduralne programovat cosi velke je fakt humus, sam to teraz zistujem uz ked mam vlastnu aplikaciu trosku vecsiu ako na zaciatku, snazim sa nepchat html medzi php, ale niekedy to ani neviem ako inac spravit aby som sa v tom uz uplne nezamotal :lol: ale tak sablony mam zvlast a rozkuskovane, mozno by niekto povedal ze tam je nejaky naznak asi oop, aspon ak oop trosku rozumiem, ale tak oop nerobim. Funkciu tam mam snad asi na vsetko a spajam dohromady len funkcie s nejakymi parametrami, ale isto ak by som sem dal cely svoj kod do coho som sa pustil, tak sa tu kazdy jeden z vas tych lepsich koderov zgrca ak by mal cosi v tom upravit alebo asi len pozrel na ten kod :lol: ale tak ja sa v nom vyznam a viem ze ten kod nikto po mne nepreberie tak mi to je asi jedno. Ovladat ale oop, tak je ten kod isto ovela prehladnejsi, ale oop neovladam. Ja som tiez rozmyslal nad nejakym sablonovacim enginom, ale naco sa na par stranok ktore chce clovek generovat ucit dalsi nejaky system niekym navrhnuty ktory je mozno komplexnejsi ako clovek potrebuje, zabije tym plno casu kym sa s tym nauci pracovat a zbytocne to este samotnu aplikaciu isto zatazi. Ja mam este taku uchylku, ze mam komplet vsetko v jednom php subore a nejak hierarchicky usporiadane, ale tak take chyby ako na zaciatku tejto temy sa snazim eliminovat, je lepsie upravit jednu vec ktora sa prejavi v celom systeme ako zistovat kde vsade nejaku danu vec ktoru chce clovek upravit ma a niekedy aj zabudne, ci cosi ine spravi, to iste aj zbytocne vytvaranie premennych, ktore dalej v kode nie su pouzite, to tiez podla mna zneprehladni kod a ma isto vplyv na rychlost kompilatora a pamete, aj ked je to smiesna hodnota urcite...

// Spojený príspevok Pon 10.11.14 15:20

teraz ma tak napadlo, pouzivam tam funkciu na strankovanie, niekto by taku funkciu mal zvlast na strankovanie vyhladavania v jednej casti ako v druhej ktora ma aj odlisny vystup a ta moja 700 riadkov, podla parametru rozdelena na tusim 8 roznych vystupov :lol: tam nieco upravovat, tak to je uz fakt umenie aby som vedel ze ci upravujem spravnu vec a samozrejme naco by sme pouzivali komentare, ved pamet nam sluzi, som zvedavy za pol roka ked to budem mat uz cele hotove a budem tam chciet cosi upravit, ze ako sa v tom vyznam :lol:







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 10.11.2014 18:50

Mego píše:
Čo to je šablonovaci system?


Niečo, čo kombinuje šablóny (textové súbory, ktoré obsahujú text a prípadne špeciálnu syntax, ktorá umožňuje napr. prácu s poliami) a výsledkom je textový súbor (prípadne html).

Napr. v Twig môžeš mať v šablóne takýto kód:
Kód:
{% if users|length > 0 %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}
Ak pri volaní funkcie, ktorá má za úlohu vygenerovať zo šablóny výsledný text, použiješ ako jeden z parametrov pole, ktoré bude prázdne, nevygeneruje sa z toho kódu nič (kvôli tej podmienke if). Ak ale bude pole obsahovať nejaké prvky, tak sa vygeneruje html zoznam, ktorý bude mať toľko prvkov, koľko má to pole elementov a pri každom tagu <li> sa ako text použije atribút username toho prvku (to |e tam spôsobí, že sa všetky problémové znaky skonvertujú na html entity)

Čiže v php kóde si pripravíš všetko, čo budú tie šablóny potrebovať (bude ich pravdepodobne viac, pretože napr. menu budeš chcieť mať rovnaké na všetkých stránkach a je jednoduchšie ho mať vo vlastnom súbore, pretože po úprave sa prejaví zmena na všetkých stránkach, kde sa šablóna vloží). Potom už len zavoláš funkciu, ktorej predáš všetky potrebné parametre a ona sa postará o vygenerovanie výsledného textu/html kódu. :)

// Spojený príspevok Pon 10.11.14 18:56

walther píše:
Objekty sú dobré, keď programátor vie, kedy ich použiť (a naučiť sa to trvá dosť dlho). Nemá zmysel zo všetkého robiť objekty, keď by úplne stačila nejaká funkcia, pretože to vôbec nič nesprehľadní.

Šablónovací systém sprehľadní html kód okamžite, pretože sa v (rozumne urobených) šablónach dá jednoduchšie vidieť, ako bude vyzerať výsledný html kód. Navyše šablónovacie systémy sa používajú takmer všade, takže sa im nedá vyhnúť. :)

// Spojený príspevok Pon 10.11.14 18:59

JanoF píše:
teraz ma tak napadlo, pouzivam tam funkciu na strankovanie, niekto by taku funkciu mal zvlast na strankovanie vyhladavania v jednej casti ako v druhej ktora ma aj odlisny vystup a ta moja 700 riadkov, podla parametru rozdelena na tusim 8 roznych vystupov :lol: tam nieco upravovat, tak to je uz fakt umenie aby som vedel ze ci upravujem spravnu vec a samozrejme naco by sme pouzivali komentare, ved pamet nam sluzi, som zvedavy za pol roka ked to budem mat uz cele hotove a budem tam chciet cosi upravit, ze ako sa v tom vyznam :lol:
Toto je jedno z miest, kde by sa dal OOP prístup použiť. Mal by si základnú triedu, ktorá by riešila bežné veci okolo stránkovania (napr. by ti vedela povedať, koľko stránok budeš potrebovať, ak budeš mať na stránke X prvkov...) a potom by si mal špecializované triedy, v ktorých by bola implementovaná funkcia na získavanie potrebných údajov (a teda, koľko je dostupných prvkov).


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Ako odprasačiť kódy?

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 10.11.2014 21:38

No hej, ja o tom dobre viem a takych veci v tom co uz asi 2 mesiace robim by sa oop dalo aj v inych veciach vyuzit a bolo by to lepsie, ale neovladam ho, takze sa s tym musim zmierit :)







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Ako odprasačiť kódy?

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 10.11.2014 21:43

Jano, alebo sa to naučiť :rolleyes:

chrono, ten tvoj príklad by s použitím čistého php vyzeral takmer identicky, akurát s tým, že sa nemusíš učiť novú syntax. Vieš uviesť konkrétnu nejakú výhodu? Lebo pri php mi to vážne uniká...







_________________
C#, PHP, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Ako odprasačiť kódy?

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 10.11.2014 21:53

Ja som rad, ze som za dva mesiace spravil nieco co ma ani pred pol rokom nenapadlo ani trochu ako take cosi spravit, isto sa k oop niekedy dostanem, ale toto prerabat urcite nebudem, to by ten web musel mat navstevnost aspon 100000 ludi denne :lol: potom sa kludne naucim aj mandarinstinu :lol:







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 10.11.2014 22:01

walther píše:
chrono, ten tvoj príklad by s použitím čistého php vyzeral takmer identicky, akurát s tým, že sa nemusíš učiť novú syntax. Vieš uviesť konkrétnu nejakú výhodu? Lebo pri php mi to vážne uniká...
Ak bude html kód vyrábať programátor, tak áno, vyzerá to takmer rovnako, ako keby tam bol použitý php kód. Ak to ale bude robiť niekto, kto nie je programátor, aj tak sa bude musieť naučiť niečo navyše a napr. Twig vyzerá veľmi podobne ako Jinja2 či Django (takže je možné, že sa s niečim podobným už stretol).


Každopádne oddeliť kód od vzhľadu je nutné už len kvôli tomu, aby sa ľahšie kontrolovali zmeny pred začleneným do VCS (keďže prehrabávať sa v útržkoch html a php nie je príliš príjemné).


Odpovedať na tému [ Príspevkov: 22 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. kody zadarmo

v Ostatné

1

1347

30.06.2009 22:14

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kódy telefónov

v Ostatné

2

20925

27.05.2005 1:33

Spectral Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zlavove kody...

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v Krčma

63

13547

16.03.2024 17:50

tarezni Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. steam kody

v Predám

3

925

24.12.2016 11:53

T.C.B.E.E Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Alza zľavové kódy

[ Choď na stránku:Choď na stránku: 1 ... 67, 68, 69 ]

v Krčma

2040

194723

04.03.2024 21:54

Maton Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kódy a vysokoškoláci

v Správy pre vedenie fóra

9

1261

23.05.2008 14:58

Luks Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladam open source kody

v Assembler, C, C++, Pascal, Java

5

1182

01.04.2008 11:58

programator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zdrojove kody seo nastrojov

v Internetový marketing, SEO, reklama

4

1012

19.02.2008 17:54

Ezekiell Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. P: Dota2 invite kódy

v Predám

1

433

29.03.2012 21:22

DwEjtSvK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ciarove kody v Corely

v Grafické programy

1

1141

30.04.2006 12:24

XPM Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. D: Alza zľavové kódy

v Vymením a darujem

0

2318

13.04.2019 17:17

jifo84 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kódy na Battlefield 4

v Predám

0

502

25.01.2014 9:14

01willi01 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. conrad.cz zlavove kody

v Krčma

1

787

09.09.2015 20:22

dank9o Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chybové kódy u HW Windows

v Operačné systémy Microsoft

0

819

04.02.2006 23:13

Shit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. WOLF4SDL -vytvorit nove kody-help

v Assembler, C, C++, Pascal, Java

2

482

30.01.2011 13:10

MAREK17 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I/P: Kody na HRY

v Predám

7

471

14.12.2013 16:59

Koroner Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra