Autor Zpráva
MelkorNemesis
Profil
ahoj, urcite se to bude hodit i ostatnim...potrebuju vyresit nasledujici problem:

mam __autoload a volam nejakou metodu, ktera je zdedena...
jak docilit toho aby se includnul soubor i te rodicovske tridy? zkousel sem to, a sam to nezachyti

— Moderátor (S): Přidána diakritika do titulku, příště ji laskavě nezapomeň použít (viz pravidla). —
ronnie
Profil
Stačí dodržovat obecná pravidla pojmenování tříd a autoload implementovat univerzálně ve stylu

function __autoload($class)
{
require '/classes/' . $class . '.php';
}
MelkorNemesis
Profil
mel jsem dve tridy

class text{}
class some extends test{}

a neslo to, mozna chyba nekde jinde, diky
ronnie
Profil
A v jakém souboru jsou uložené? Pokud v text.php a v some.php a jsou ve stejném adresáři, pak by mělo stačit

function __autoload($class)
{
require $class . '.php';
}
MelkorNemesis
Profil
edit: oboje tridy sou test (text preklep), some .. ale ano, oboje test.php i some.php jsou ve stejne slozce. Zkusim to jeste jednou
MelkorNemesis
Profil
tak to jde, diky :)
ronnie
Profil
Urcite to funguje. Doufam, ze to testujes na PHP 5;-)
MelkorNemesis
Profil
jj testuju :) - pak jeste nejak vymyslim to loadovani z podslozek
BetaCam
Profil
MelkorNemesis
jj testuju :) - pak jeste nejak vymyslim to loadovani z podslozek

Na tom neni co k vymejšlení. Pokud těch složek nebudeš mít milion tak ti stačí třeba primitivní.

function __autoload($class)
{
   if(file_exists('/classes/'.$class.'.php')){
      require '/classes/'.$class.'.php';
   } elseif (file_exists('/classes/abc/'.$class.'.php')){
      require '/classes/abc/'.$class.'.php';
   }
   elseif(file_exists('/classes/xyz/'.$class.'.php')){
      require '/classes/xyz/'.$class.'.php';
   }else{
      .....
   }
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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