Pereiti prie turinio

Extend'int klase tuo paciu pavadinimu


Rekomenduojami pranešimai

Sveiki,

 

Bandau kurt Laravel aplikacija, taciau niekaip nesugalvoju geros strukturos.

 

Esme, kad visa sistema turi but is moduliu. Kiekvienas modulis turi savo routes, controllerius, modelius etc., viskas sujungta per ServiceProvider'i. Mano problema:

 

Turiu Pages moduli. Jame yra Page modelis (Eloquent\Model), kuris turi savas funkcijas, viskas ok, ir kiti modeliai naudoja ta moduli, kad atvaizduoti puslapius (pakeiciant turini ar pns.). Bet tuomet, tarkim noriu modulio PageFiles, kuris leistu prie kiekvieno Page moduliu prisegti failus. I pati Page moduli lengva butu irasyt, paprastas relationship, taciau kaip man padaryt, kad tas atskiras modulis sukurtu ta relationship ant Page modulio? Tiesiog extend Page negaliu, kadangi, bus bent keli moduliai, kurie nores prideti funkcijas i Pages moduli, ir kiekvienas jeigu extendins Base moduli, tuomet vienu metu tik viena funkcija galimes naudoti (t.y. jeigu bus klases PagesWithFiles ir PagesWithBanners tai tik viena vienu metu galimes naudot). Man reiktu budo, kad pacios Pages klases nekeitus, kitas modulis galetu pridet tarkim metoda Page->getFiles() arba Page->banners ir pns., lyg pacioj klasej butu irasyta.

 

Dekui uz pagalba.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

sitas variantas netiktu?

 

http://culttt.com/2014/06/25/php-traits/

 

Bet siaip as nesuprantu kaip tu cia darai. Gal kazka super duper su tais Moduliais.

 

As daryciau taip

 

Pages (Modelis) ->rysis daug su daug ar vienas su daug<- Files (Modelis)

(papildomas stulpelis atpazint kokiam modeliui irasas priklauso, jeigu ju butu daugiau (Pages, Categories ar dar kazkas kam reikes failu prisegt)) Jeigu reiketu pvz padaryti failu lista ir matyti kokiam irasui failas priklauso.

 

https://laravel.com/docs/5.2/eloquent-relationships#polymorphic-relations

 

Pages (Modelis) ->rysis daug su daug ar vienas su daug<- Banners (Modelis)

 

Categories (Modelis) ->rysis daug su daug ar vienas su daug<- Files (Modelis)

 

Neturi Pages failu ar kategoriju ar banneriu, nieko tokio.

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

sitas variantas netiktu?

 

[...]

 

Jo, jeigu traits butu galima dinamiskai uzdeti, tai turbut butu idealiausias variantas, taciau kiek ziurejau nelabai.

 

Pirma mintis ir buvo kaip cia sakai, tiesiog ideti relationship'us tarp moduliu. Tiesiog norejau paziureti ar yra koks dizaino sprendimas, jog nelietus vieno modulio, kiti modeliai galetu prideti funkcionaluma, kadangi bandom kurt sistema kuri butu kaip imanoma automatizuota.

 

Dekui uz pagalba, turbut teks daryti tavo budais.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

 

Irgi buvo mintis, taciau is pradziu buvo ta pati problema, jog kiti modeliai tiesiog naudoja (new Page()). Taciau dabar galvojant, jeigu sukurus PageFactory, kuris automatiskai dekoruotu Page modeli pagal tai, kokie kiti modeliai yra, tai turbut iseitu padaryt ko norim.

 

Dekui :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Sukurti naują...