Autor Zpráva
zero0x
Profil
Zdravim vas,

riesim takyto problem

mam webovu aplikaciu, ktora obsahuje hlavnu triedu Core.class. V hlavnej triede sa kontroluje akcia dana pomocou GET, a podla toho sa volaju jej metody.

Teraz prisiel cas na inovaciu, a preto sa snazim tuto triedu logicky rozdelit. Chcem aby obsahovala viacej tried, avsak chcem aby tieto triedy mohli pracovat s metodami a vlastnostami hlavnej triedy.

Teda myslim, ze by to mohlo byt takto

(priklad - trieda pre pracu s prihlasovanim)
class User {

private $_core;

public function __construct(&$core){
$this->_core = $core;
}

public function db(){
$connection = $this->_core->db->connect();
}
}


class Core {
...
$user = new User($this);
...
}



Funguje to tak, ze pri vytvarani kazdej triedy sa ulozi odkaz na hlavnu triedu ako privatna vlastnost. Dalej nasleduje demonstracia pristupu do hlavnej triedy. A nakoniec (v class Core) je ukazane ako sa vytvara instancia na triedu User.

***

Takze. Videli ste, ako to funguje, a teraz potrebujem od vas vediet, ci je to dobre riesenie, a ci neexistuje lepsie.

Napriklad nejak cez dedicnost, ze tie podtriedy by vlastne extendovali hlavnu, ale netusim ci to moze fungovat, tak sa vas pytam.

Diki ;-)
Joker
Profil
Nevím, jestli je to správné řešení, ale sám to podobně dělám :)
zero0x
Profil
hmm, myslim, ze php5 ma vecsie moznosti, teda prave pre taketo logicke veci..

no nic, idem studovat :D
Mastodont
Profil
Ta tvoje core vypadá jako registry, čili je to dobře. Já osobně ale konstrukce $this->_core->db->connect() rád nemám.
dracek
Profil
co třeba dědit?
zero0x
Profil
mastodont: ako to robis ty?

dracek: zatial nic, totiz neviem kde by sa dala dedicnost vyuzit

btw google ma na hladanie web application structure dost vela vysledkov, tam sa pokusim nieco najst

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