Autor Zpráva
Jcas
Profil *
Za tento dotaz mě asi zastřelíte, ale už se potýkám s mnohonásobnou duplicitou php kódu. A zajímalo by mě, jak se to dělá pro jednoduchost a přehlednost. Také rychlost zpracování stránek.

Vysvětlím na příkladu.
Mám např. 10 stránek a 10 php function(). Funkce jsou naprosto stejné - stejný php kód - pro různé stránky.

1. stránka potřebuje 1,3, a 5. funkci
2. stránka potřebuje 2,3,4 a 7. fc
3. str. potřebuje 1. 3. 4. fc

Atd. Ve skutečnosti se už bavím asi o 20-ti web str. a asi 50-ti fc. (tedy části kdu, které pravidelně opakuji pro další a další stránky.

No teď jde právě o to řešení.
1. Do každé stránky nastrkám ty funkce, které potřebuje. To mám nyní. A zhodnotil bych to už aspoň 2000 řádků, které se opakují v různých souborech.
2. Udělám si jeden soubor, kam tyto fc nastrkám a includuji to do každé stránky. Tak je nebudu mít psané několikrát, ale zase pro každou stránku tam bude několik fc, které ve skutečnosti dotyčná stránka nepotřebuje.
3. Si třeba udělat dir "funkce" a tam funkce nastrkat do samostatných souborů a pak jen includovat to co zrovna potřebuji.


Je to nesmyslný dotaz?
pcmanik
Profil
Jcas:
Najlepšie bude asi druhé riešenie to čo popisuješ v 3. sa skôr využíva pri objektovom programovaní, kde každá trieda má svoj súbor.
Prvé riešenie je kompletne zle. Vzniká ti ťažko udržovatelný kód.
shaggy
Profil
Nie je to nezmyselný dotaz, je to klasická otázka začínajúceho programátora (a je dobré, že nad tým uvažuješ).
Možnosť č. 1 je zlá. Akákoľvek redundancia v kóde väčšinou znamená iba problémy - ak napr. zmeníš funkciu abc(), ale zabudneš ju zmeniť v jednom súbore, môžeš potom hodiny rozmýšľať, kde máš chybu.

V tvojom prípade sa mi ako najvhodnejšie javí riešenie č. 2 - to, že bude každá stránka obsahovať funkcie, ktoré nevyužíva, nemá na výkon žiadny vplyv.
juriad
Profil
Není to nesmyslný dotaz.

Když se ani nepodělíš o ukázku těch funkcí nebo je blíže nepopíšeš, těžko odpovědět.
Obecně první varianta je špatná, na tom se shodneme snad všichni.
Funkce je treba seskupit: do jednoho souboru patří vždy podobné funkce volané ve stejném kontexu a funkce které na sobě závisí. Nezapomínej na to, že includované soubory mohou includovat (nebo raději require_once) další soubory, takže například index.php si může includovat články.php, které includují databáze.php.
Jcas
Profil *
Tak první věc, kterou docela hodně kopíruji jsou fc na přihlášení. Kontrola $_SESSION, hesla a třeba tento vyhazov.
function neprihlasenej() { # pokud neni uzivatel prihlasenej, vytiskneme formular

    die( head() . login_form() . foot() );

}

Pak třeba stránky, které pracují s mysql mají také dost často stejné kroky.
$tab_ok = existuje_tabulka($tabulka);

A nebo mám docela opakované zpracování kontroly formuláře.
$kontrola[] = zkontroluj_form('input1', 'vyplneno');
$kontrola[] = zkontroluj_form('input2', 'email');

Ale myslím, že jste mi teda docela bleskově odpověděli. Děkuji
peta
Profil
1. Do každé stránky nastrkám ty funkce, které potřebuje. To mám nyní. A zhodnotil bych to už aspoň 2000 řádků, které se opakují v různých souborech.
... Include a require soubory se daji drzet v pameti.

2. Udělám si jeden soubor, kam tyto fc nastrkám a includuji to do každé stránky. Tak je nebudu mít psané několikrát, ale zase pro každou stránku tam bude několik fc, které ve skutečnosti dotyčná stránka nepotřebuje.
... Muzes rozdelit ten include soubor na tri nebo vic. profil.inc = profilInsert + profilUpdate + profilDelete + profilSelect. Uzavres to do class, pouzijes class.

3. Si třeba udělat dir "funkce" a tam funkce nastrkat do samostatných souborů a pak jen includovat to co zrovna potřebuji.
... Tezko rici, nedelam to, abych mel pro kazdou funkci zvlast soubor. Slo by to udelat. Udelas si funkci, ktere predas seznam souboru a ona ti to naincluduje nebo requiruje. Otazkou je, jestli treba 3-4 includy nejsou jednodussi nez uprostred kodu zjistit, ze tam nejakou funkci nemas a pak ji dopisovat. A soucasne treba zjistis, ze tam uz nejakou nevyuzivas, tak ji hledat v tom seznamu a mazat. Pak zjistis, ze tu smazanou vlastne nekde pouzivas.... :)

"hodně kopíruji jsou fc na přihlášení."
Na to mam jeden include login.inc, kde resim prihlaseni a vse, co s nim souvisi, jako treba generace prihlasovaciho formulare, odhlasovaci formular, vypis uzivatelova jmena a tak. Obvykle to ma asi 1k. Pulka z toho je samotne overeni prihlaseneho usera, takze mi to neprijde tak hrozny.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0