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 – 8. diel - Polymorfizmus, finálne prvky a autoloader 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
Odpovedá na Martin Konečný (pavelco1998)
Vít Cigánek:12.10.2015 9:38

Tak načítaní tříd jsem vyřešil takto. Ted už mi zbývá vyřešit jenom to pole.

set_include_path(get_include_path() . PATH_SEPARATOR . 'tridy/');
spl_autoload_extensions('.php');      // alternativa spl_autoload_extensions('.php, .inc');
spl_autoload_register();
Editované
Avatar
Vít Cigánek:12.10.2015 11:48

Já nechápu, že nikde není postup, jak udělat objekt s parametry.

Když bude skript vypadat nějak takto.

if(podmínka1)
$select1  // vyber z databáze například uživatel
pole1=new Pole($select1)
pole1=vlozprvek();
pole1=smazprvek($parametr);
pole1=zobraz();

if(podmínka2)
$select2  // vyber z databáze například pokročilý uživatel
pole2=new Pole($select2)
pole2=vlozprvek();
pole2=smazprvek($parametr);
pole2=zobraz();

if(podmínka3)
$select3  // vyber z databáze například administrátor
pole3=new Pole($select3)
pole3=vlozprvek();
pole3=smazprvek($parametr);
pole3=zobraz();

Přece to pole nemůžu nastavovat ve třídě, to bych pak musel pro každý select dělat novou třídu. A další věc je ta, že když dam funkci smazprvek, tak mi zmizi jenom z toho pole. Nikoliv z databaze.

Avatar
Vít Cigánek:12.10.2015 11:55

parametry bych chtěl předávat nějak takhle

$pole = New Pole(array(a,b,c,d)); nebo
$pole1 = New Pole(array('a=>b','c=>d'));
Avatar
szymsza
Tvůrce
Avatar
szymsza:22.3.2016 12:47
"Autoloader je potřeba umístit v celé aplikaci pouze jednou, někam na začátek (klidně do indexu). O načítání tříd se již více nemusíme starat."

Tohle jsem moc nepochopil, resp. se mi to zdá divné. Takže když autoloader vložím dejme tomu do indexu, a potom budu chtít načíst nějakou třídu v úplně jiném souboru, tak se o to nemusím starat i když nemá ten soubor ani třída zmínku o indexu? To by bylo kouzelné :-)

Avatar
Pavel Kubalík:9.2.2021 15:22

Dobrý den
Uzavírám tuto lekci, i když mám hotové jen dva příklady. Třetí příklad se snažím pochopit, ale zatím jsem jen na začátku. Pochopil jsem zatím jen malinko. Jak vytvořit arénu se snažím studii příklad v některém z předchozích příkladu (zejména ten kde se parkuje auto do garáže). Dávám však přednost postupu dopředu - ke statice. K příkladu se vrátím později a uvidíme. I ty dva příklady pokládám za úspěch.
Děkuji PK

Avatar
Yuriy Tretyachenko:22.3.2021 4:39

No, jsem puvodne lekar, a kazdy lekar tak trochu i biolog. O tom polymorfizmu mohl bych vykladat nejmin tak asi hodinu. A tady je to vse jednoduche. Az toho polymorfizmusu nejak lito

Avatar
Odpovedá na Pavel Kubalík
Yuriy Tretyachenko:22.3.2021 4:58

nedelej s tim tretim ukolem hlavu - ja jsem to hodil a pokracoval dal. Kdiz se vratim, tak nebudu pouzivat jejich promenne - udelam svoje

Avatar
Yuriy Tretyachenko:22.3.2021 5:00

no, kdyz mne to nepusti, tak udelam podle Vas

Avatar
Dušan Kovářík:23.7.2021 7:13

To automatické načítání tříd je skvělé. Doufal jsem, že bude existovat nějaký lepší způsob, než si všechny třídy načítat manuálně.

Avatar
Marcel Sup
Člen
Avatar
Marcel Sup:23.7.2021 17:58

To automatické načítaní tříd se mi také zalíbilo. Při testování jsem však zjistil, že je nutné dát na začátek aktuální stránky odkaz k načtení stránky, která "autonačítání" tříd obsahuje.
Dále mi vrtalo hlavou, jak to udělat, aby to fungovalo i v případě, kdy je tříd hodně a jsou rozstrkané v ruzných adresářích a podadresářích. To už bylo trochu nad moje síly a schopnosti - a tak mi pomohl syn.

<?php
                    function nactiTridu($trida)
            {

                        nactiTriduZAdresare($trida, "tridy");

            }
            function nactiTriduZAdresare($trida,$adresar ){
                if (is_file ("$adresar/$trida.php")){
                    require "$adresar/$trida.php";
                    return true ;
                }
                $slozka = dir($adresar);

                while ($podslozka = $slozka->read()){
                    if (is_dir("$adresar/$podslozka") && $podslozka!='.' && $podslozka!='..' ){
                        if (nactiTriduZAdresare($trida, "$adresar/$podslozka")){
                            return true ;
                        }
                    }

                }
                return false ;

            }
            spl_autoload_register("nactiTridu");
        ?>
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é 10 správy z 41.