Problem sa loadanjem klasa

Znaci problem je u ovom: da kada korisnik iz klase A, preko funkcije loada klasu B (njen objekt ce biti koristen iz klase A ovako: $this->objekt_klase_b), i preko druge funckije loada klasu C, u klasi C ce takodjer biti objekt klase B ($this->objekt_klase_b).

Mislio sam ovako: napravim varijablu u klasi A: $b = array(); tu ce biti svi objekti klase B koji su loadani iz klase A, i $c = array(); tu ce biti svi objekti klase C koji su loadani iz klase A. i onda u klasi C pozivam klasu A i iz nje koristim foreach da bi inicijalizirao objekte. Ali problem je ako prvo ubacim klasu C pa onda klasu B. tako ce objekti klase B biti spremljeni kasnije nego se dogodi inicijalizacija u klasi C.

Skraceno: klasa B se nakon loadanja u klasi A moze koristiti i u A i u C, bez obzira na redoslijed loadanja.
Trebam pomoc, hvala unaprijed :slight_smile:

Pomotano a da napišeš to u kodu.

Klasa B se nakon “loadanja” u klasi A moze koristiti i u klasi A i u klasi C, bez obzira na redoslijed je li prvo klasa B ili klasa C loadana preko klase A.

Simple as that. ako treba jos pojasniti, pišite

Što treba znači “loadanja”, include, require?

Primjer “loada” klase B iz klase A:

[php]public function load_class($class, $object = null, $constructor = null)
{
if (class_exists($class))
{
require ($class . ‘.php’);

    // Ime objekta

// moze i $object_name = (is_null($object)) ? strtolower($class) : strtolower($object);
if (is_null($object))
{
$object_name = strtolower($class);
}
else
{
$object_name = strtolower($object);
}

    // Konstruktor
    if (is_null($constructor))
    {
        // Pravljenje objekta
        $this->$object_name = new $class();
    }
    else
    {
        // Pravljenje objekta
        $this->$object_name = new $class($constructor);
    }
}

}[/php]

Ali da je ta klasa B vidljiva i u klasi C, kad je pozvana iz klase A.
Npr mogu napraviti sada varijablu $klase_c koja je array i u nju ce se spremati sve klase “C” pozvane. I onda u funkciji load_class samo napravim foreach na to i tamo isto napravim objekt. Ali sta ako prvo pozovem klasu/klase B, pa onda tek klasu/klase C. Onda ce klasa C biti spremljena u varijablu nakon sto je loadana klasa B, i nece biti vidljiva :smiley: Nadam se da razumijete.

Trebao bi pripaziti na $this u PHP. U njemu se može kršiti enkapsulacija jer $this se u PHP odnosi cijelo vrijeme na instancirani objekt a ne na klasu u kojoj se $this koristi.
Tako da se u php može iz parent klase pristupiti klasi koja ju extenda.
Jeli to problem neznam, ali eto.
Ali to svakako mislim da nije dobra praksa.

[quote=“gorrc”]Trebao bi pripaziti na $this u PHP. U njemu se može kršiti enkapsulacija jer $this se u PHP odnosi cijelo vrijeme na instancirani objekt a ne na klasu u kojoj se $this koristi.
Tako da se u php može iz parent klase pristupiti klasi koja ju extenda.
Jeli to problem neznam, ali eto.
Ali to svakako mislim da nije dobra praksa.[/quote]

Hmm, nisam dobro skuzio. Niti klasa A, niti B, niti C nemaju parent klasu. Drukcije nemogu pozivati klase. U varijablu klase A spremam instancu klase B.

Čuj slučaj za vidovitog Milana:)

Jojo, a šta tebe u stvari pati, iz svih tvojih postova nije mi jasno, daj napiši primjer u kojem želiš koristiti, a ako ne možeš smisliti primjer onda ti to vjerojatno(100%) ni ne treba.

Vidim da mi je problem u patternima i dizajnu aplikacije. Znate li neke pattern knjige na nasem jeziku? :frowning:

Rađe se prvo nauči engleski kad smo već kod toga.

I opet ponavljam, čemu izmišljati toplu vodu? Uzmi Kohanu i uzmi si mjesec dana da ju proučiš pa će ti sve biti jasno.

[quote=“Gosaric”]Rađe se prvo nauči engleski kad smo već kod toga.

I opet ponavljam, čemu izmišljati toplu vodu? Uzmi Kohanu i uzmi si mjesec dana da ju proučiš pa će ti sve biti jasno.[/quote]

Čovjek je uzeo CodeIgniter, čiji je Kohana fork. Ali on ima fundamentalnu grešku da radi nešto, a ne zna ni šta ni zašto. Pa kad mu postaviš konkretno pitanje da da konkretan odgovor onda ne zna. Ovim putem apeliram još jednom začetniku ovog thread-a da nam kaže konkretan problem koji želi riješiti, kako ga je počeo riješavati i gdje je zapeo. Ali molim lijepo i koncizno da se sve razumije, kao dijetetu od 8 godina :slight_smile:

Vidi se da učiš OOP ali učenje OOP u PHP ti nije najkvalitetnije način naučiti OOP.

Taj jeziik nije izdizajniran za OOP i radi se “prenamjena” tog jezika u OOP okruženje i tu se radi kompromisi koji nemaju veze sa ničem. Barem se meni tako čini.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja