[ Príspevkov: 22 ] 
AutorSpráva
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
NapísalOffline : 08.11.2014 22:24 | Ako odprasačiť kódy?

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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 08.11.2014 23:34 | Ako odprasačiť kódy?

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...


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Napísal autor témyOffline : 08.11.2014 23:58 | Ako odprasačiť kódy?

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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 09.11.2014 1:19 | Ako odprasačiť kódy?

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
Napísal autor témyOffline : 09.11.2014 12:09 | Ako odprasačiť kódy?

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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 09.11.2014 12:25 | Ako odprasačiť kódy?

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
Napísal autor témyOffline : 09.11.2014 13:58 | Ako odprasačiť kódy?

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: 12516
Témy: 41 | 41
Bydlisko: Martin
NapísalOffline : 09.11.2014 14:07 | Ako odprasačiť kódy?

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
Napísal autor témyOffline : 09.11.2014 14:57 | Ako odprasačiť kódy?

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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 09.11.2014 15:54 | Ako odprasačiť kódy?

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
Napísal autor témyOffline : 10.11.2014 7:42 | Ako odprasačiť kódy?

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: 1719
Témy: 0 | 0
NapísalOffline : 10.11.2014 10:07 | Ako odprasačiť kódy?

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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 10.11.2014 12:08 | Ako odprasačiť kódy?

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: 1719
Témy: 0 | 0
NapísalOffline : 10.11.2014 14:35 | Ako odprasačiť kódy?

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
Napísal autor témyOffline : 10.11.2014 14:54 | Ako odprasačiť kódy?

Č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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 10.11.2014 14:55 | Ako odprasačiť kódy?

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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 10.11.2014 15:16 | Ako odprasačiť kódy?

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:


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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: 1719
Témy: 0 | 0
NapísalOffline : 10.11.2014 18:50 | Ako odprasačiť kódy?

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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 10.11.2014 21:38 | Ako odprasačiť kódy?

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 :)


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 10.11.2014 21:43 | Ako odprasačiť kódy?

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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 10.11.2014 21:53 | Ako odprasačiť kódy?

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:


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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: 1719
Témy: 0 | 0
NapísalOffline : 10.11.2014 22:01 | Ako odprasačiť kódy?

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é).


 [ Príspevkov: 22 ] 


Ako odprasačiť kódy?



Podobné témy

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

Zlavove kody...

v Kôš

0

30

07.05.2017 10:29

Julia

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

Zlavove kody...

v Krčma

26

4408

28.04.2017 13:53

tarezni

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

Kódy telefónov

v Ostatné

2

19953

27.05.2005 1:33

Spectral

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

kody zadarmo

v Ostatné

1

679

30.06.2009 22:14

rooobertek

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

steam kody

v Predám

3

237

24.12.2016 11:53

T.C.B.E.E

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 ... 56, 57, 58 ]

v Krčma

1720

100733

14.12.2017 22:09

John Markinson

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

991

23.05.2008 14:58

Luks

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

Zdrojove kody seo nastrojov

v Internetový marketing, SEO, reklama

4

776

19.02.2008 17:54

Ezekiell

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

conrad.cz zlavove kody

v Krčma

1

215

09.09.2015 20:22

dank9o

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

Hladam open source kody

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

5

886

01.04.2008 11:58

programator

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

ciarove kody v Corely

v Grafické programy

1

902

30.04.2006 12:24

XPM

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

Kódy na Battlefield 4

v Predám

0

212

25.01.2014 9:14

01willi01

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

232

29.03.2012 21:22

DwEjtSvK

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

I/P: Kody na HRY

v Predám

7

271

14.12.2013 16:59

Koroner

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

627

04.02.2006 23:13

Shit

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

WOLF4SDL -vytvorit nove kody-help

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

2

262

30.01.2011 13:10

MAREK17



© 2005 - 2017 PCforum, edited by JanoF