Autor Zpráva
malek
Profil
zdravim

da sa dedit z dvoch tried naraz?

class third extends first, second {

}

to zrovna nefunguje :D
nightfish
Profil
ne, nedá
opravdu to potřebuješ?
malek
Profil
no da sa to obist ale asi by to bolo lepsie a prehladnejsie takto, neva

tusim to ide nieak takto


public function nieco;

__construct() {

nieco = new trieda();

}
nightfish
Profil
k čemu vícenásobnou dědičnost potřebuješ?
nestačilo by skládání tříd?
malek
Profil
asi ani nepotrebujem, slo by to napisat niak takto?:

$tebaChcem = "NazovTriedy";

class third extends $tebaChcem {

}
bukaj
Profil
malek
Za dobu, co se věnuji programování, jsem viděl jediný případ, kdy nejelegantnějším řešením byla vícenásobná dědičnost. Řekl bych, že u tebe se o tento případ nejedná :o)

class third extends $tebaChcem {
Ale fuj. Nejde (díkybohu?). Radši ani nebudu uvádět postup, jak by se to dalo prasácky udělat, aby ses toho ještě nechytnul. Věř mi, že tohle zavání hodně špatným návrhem aplikace. Doporučuji ti zakoupit si a nastudovat některý z titulů zabývajících se OOP.
Joker
Profil
malek
Jak nám říkali na objektovém programování na vejšce: jen proto, že dedičnost je "populární" vlastnost objektově orientovaných jazyků, není nutné všechno dělat přes dědění. Třeba skládání bývá někdy výhodnější ;-)
malek
Profil
no ok, ja som chcel nieco take

nieaka trida layot by dedila triedu podla typu stranky fotogaleria, produkty, stranky.. layot by zobrazoval to co by nadefinovali zdedene triedy, trebarz title, meta, header, side, otherside, content, footer.. slo by to aj tak ze by layout nebola trieda :)

abo ako to riesit aby som dosiahol podobny vysledok, tj ze by som mal v html kode len par premen ktore by definovali ine triedy.. jednoducha zmena sablony a myslim ze by to bolo velmi prehladne pre tvorbu dalsich modulov.. vyhladavanie, novinky...
Joker
Profil
malek
Nebylo by lepší než řešit layout PHP třídou to udělat pomocí šablon?

Tj. že třída nebude mít proměnné pro titulek, HTML hlavičku, hlavičku stránky,... ale ty "proměnné" budou v šabloně a třída bude mít jen metodu třeba assign, která přiřadí obsah nějaké proměnné v šabloně?

něco jako:
$sablona->assign("titulek", "nějaký titulek");
(alespoň tak to dělám já)
malek
Profil
asi som to nepochopil :) riesi to to ze zdedim sablonu len ktoru chcem .) lyout ktory to zobrazujem chcem aby vysiel tiez ako jedna premena aby sa to pak dalo jednoducho cashovat.. tj ak stranka neexituje zdedi sa potrebna sablona, layout zobrazi obsah a vytvori staticku html stranku.. pri dalsej snahe o zobrazenie tohto url sa uz len tato stranka zobrazi..

trieda layout php bude mat viac podobnych funkcii.. vyslo mi to tak ze potrebujem dedit triedu podla typu stranky :)
Joker
Profil
Jestli jsem to dobře pochopil, tak layout nějaké konkrétní stránky bude PHP třída. Nějak v tom nevidím výhody :-).
Spíš to naopak motá dohromady aplikační a prezentační věci.

Idea toho, jak to myslím já:

Prezentace: HTML soubor, kde jsou nějakým zvláštním způsobem vyznačené nahrazované věci. Třeba
<html><head><title>{TITULEK}</title></head><body>{OBSAH}</body></html>

Data (v databázi): obsahují data, která se budou plnit do těch nahrazovaných věcí.

Aplikace (PHP soubor): udělá tu samotnou práci, tj. nějakým způsobem nasype data z databáze do toho HTML kódu.

Tímhle způsobem aplikace ani nemusí vědět, že na stránce nějaká proměnná TITULEK vůbec existuje (název toho, co má nahradit, může taky tahat z databáze)
suky
Profil
malek
nieaka trida layot by dedila triedu podla typu stranky fotogaleria, produkty, stranky..
Zkus se poohlednout po Zend Frameworku, popripade po jinem PHP MVC frameworku. A jak psal bukaj, chtelo by OOP trochu nastudovat. Zkus hned P.1.

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:

0