Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa MVC-om

[es] :: PHP :: Problem sa MVC-om

[ Pregleda: 1743 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Problem sa MVC-om22.08.2011. u 14:52 - pre 153 meseci
U pitanju je moj mvc koji radim za sebe. On se sastoji iz sledecih:

-App
----Controller
----View
----Model
-Libs
-Config
-----Database.php
-index.php

Struktura Mvc Dir-a.

Imam problem sa glavnom klasom kontrolera, ja sam povezao Model,Controller i View deo sada imam problem.
Kada da povezem glavni kontroler i neku moju klasu koja sadrzi informacije o mom sajtu...
Code:

class Test extends Controller{
     function __construct(){
         parent::_construct()
     }
   
    function index(){
       $data['title'] = 'naslov';
       $this->load->view('index',$data);
    }
}

Nailazim na probleme da glavna klasa Controller ne moze biti ucitana i sve promenljive koje sam definisao $data['title'] i prosledio u view index ne mogu biti prikazane. dobijam gresku....

Dali bi neko mogao da mi pomogne oko toga da znam kako da uradim to ucitavanje kontrolera i slanje na view...
Dali ja moram u glavnom kontroleru posle _contsruct funkcije da imam zasebnu funkciju neki loader kontroler?

Sve to radi kada ja npr kao test instanciram u glavnoj Kontroler klasi $this->load->view('index'); onda se ucita view deo a dok u front kontroleru Test instanciram to nece da radi... Moj kontroler koji je glavni jako je jednostavan sa par linija koda koje istanciraju model i view.. u bootstrapu sam ga instancirao da se on uvek ucitava new Controller().

Nadam se da ste me ukapirali i hvala vam unapred. Nikada nisam radio sa nekim template eng. pa je izgleda to i problem jedino sto sam radio sa FW CI do sada. U oop sam pocetnik radim vec jedno godinu dana, i nisam anti duduk ali ovo mi prestavlja neki problem neide mi u glavi kako to da povezem kodom, nemogu da stvorim sliku u glavi o organizaciji koda. Sta kontroler klasa treba da sadrzi i sta da filtrira.


Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Problem sa MVC-om22.08.2011. u 15:12 - pre 153 meseci
mislim da ti je previse generalno pitanje, nisam uspeo da razumem sta je tacno problem. "dobijam gresku...." koju tacno gresku dobijas?
Inace probaj da ako nesto ne mozes u mislima da uoblicis kako treba da radi i da izgleda, kreni i crtaj diagrame onako skolski, i ne mozes da omasis nikako, imaces jasnu sliku sta se kad i zasto desava tacno.
I probaj da detaljnije objasnis problem nekako, daj nesto konkretnije gde je problem tacno
 
Odgovor na temu

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Problem sa MVC-om22.08.2011. u 15:26 - pre 153 meseci
Ok mozda sam ja sve to zbrzao. Ma procitao sam brdo tutoriala i tih diagrama nije to problem. Moj problem je kada definisem promeljivu u test klasi koja nasledjuje Controller ta promeljiva ne moze biti prikazana u view delu i dobijam kao Undefined variable. Znaci da negde gresim i da nisam povezao kako treba.
Znaci u glavi i je haos sve sam izmesao od kako sam poceo da radim ovaj mvc. Buljim u one diagrame i po 100x pisem izpocetka. Nemogu da realizujem pravi kod za kontroler - view - model... Gledam druge gotove FW kao sto je zend i CI... I nista mi nije jasno ne mogu da procitam kod jer je jako komplikovan.
Najvise sto mi tu nije jasno komunikacija izmedju glavne Klase CONTROLLER i mojih klasa koje se nalaze u app/controller. Dali ja vezu dobijam sa kontrolerom tako sto ga nasledim (extends) ili moram da radim posebnu funkciju u kontroleru loadController()..
Jel moze neki jednostavan primer za kontroler koji povezuje view i model deo da vidim jel ja ispravno radim ili skroz sam omasio.
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Problem sa MVC-om22.08.2011. u 15:48 - pre 153 meseci
Mora biti da si sve zbrzao i pomesao, napravi pauzu par dana pa hladne glave sedni i radi to sto si zamislio.
Po tvoj pisanju ti zelis da napravis kopiju necega sto ne razumes kako radi niti mozes da procitas komplikovani kod toga sto zelis da kopiras.
Ako ne znas sta zelis da napravis, kako mislis da ga napravis onda?
Usput, nisam ti rekao da gledas brdo dijagrama na netu, nego da sednes i sam da crtas dijagrame za to sto zelis da napravis, ali opet, ako ne znas sta zelis da napravis tesko da ces ga napraviti (a mozda si ga vec i napravio ali ne znas)

I dalje me muci sta tacno pitas sad, ali ti nasledjuejs glavni kontroler i onda oni postaju "jedno" tako da nema komunikacije izmedju njih, jedan je kontroler
 
Odgovor na temu

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Problem sa MVC-om22.08.2011. u 15:54 - pre 153 meseci
Zbrzao jesam ali kopiju ne zelim, gledao sam cisto da vidim nacin na koji su radili.
Mislim da si upravu da trebam malo ohladiti glavu.

Ja mislim da je najveci problem sto ja nemam ideju kako da povezem te tri stavke Model-View-Controller i kako da saljem u view delu za pregled... napravio sam bio neke test mvc primere koji su komunicirali izmedju sebe ali to je bilo strasno prljavo kod je bio sacuvaj boze i to me jako iritira i obrisao sam. Zelim nesto kvalitetnije da uradim ipak cu ja to da koristim i zelim biti siguran
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Problem sa MVC-om22.08.2011. u 16:01 - pre 153 meseci
Pa onda kreni simple pa posle ces znati kako ti odgovara u praksi. Za pocetak si dobro krenuo ja mislim, lici mi na codeigniter, ali bi ja to prlicno uprostio jos pa ces naknadno da prosirujes mogucnosti kako ti bude bilo potrebno.
Mozda je bolje da ne zagrizes previse jer moze samo da ti se smuci programiranje, kreni jedno po jedno, kako ga razumes i kako umes tako pa posle kad imas nesto sto radi, onda krenes da menjas i poboljsavas to sto imas (refactoring).
Znaci uvek i stalno KISS, nije ni CI postao odjednom to sto jeste, dosta stvari su se menjale vremenom kako se koja pokazala kao nepotrebna/pogresna.

Pravi pauze kad naidjes na probleme, nemoj da lupas glavom dok se nesto ne desi sa kodom nego cekaj da se resenje desi u glavi pa onda sedni i kucaj, ne mozes da silis resavanje problema nikako. Izadji prosetaj, gledaj neke serije, skreni misli nekako pa ces onda cim sednes u roku od 10min da vidis u cemu je problem i da znas resenje, to moze da ti potvrdi 95% ljudi (pa i programera :) ). Ili sto kazu "jutro je pametnije od veceri"
 
Odgovor na temu

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Problem sa MVC-om22.08.2011. u 16:11 - pre 153 meseci
To jesi upravu, ja nikada do pre nisam imao problema sa php dok nisam poceo da radim OOP.. Onda je konstantno problem za problemo poceo.
Lici na CI zato sto sam radio namerno tako jer mi se svidja nacin pozivanja svih klasa i funkcija, jer sam dugo radio u CI i mnogo mi je lakse uraditi sa istim imenima funkcije jer ih poznajem...

Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Problem sa MVC-om22.08.2011. u 17:12 - pre 153 meseci
daj index.php i controller klasu, da mozemo bolje da sagledamo problem
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Problem sa MVC-om22.08.2011. u 17:14 - pre 153 meseci
function __construct(){
parent::_construct()
}

;)

Nisi nikad ni pokrenuo konstruktor :D. Nedostaje ti _

Ohladi glavu ;)
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Problem sa MVC-om22.08.2011. u 20:31 - pre 153 meseci
Polako...

"Dali ja vezu dobijam sa kontrolerom tako sto ga nasledim (extends) ili moram da radim posebnu funkciju u kontroleru loadController()."
Front kontroler analizira POST/GET parametre (ili ceo "HTTP request") i na osnovu toga se odlučuje koji kontroler da učita i pokrene ga, ako se izvršavanje ikada vrati nazad iz kontrolera tu treba da ga sačeka jedno die();

Recimo da se odlučio za "Login" kontroler, koji treba da prikaže stranicu sa login formom. Loader treba da ti iskopa tu klasu i učita je u memoriju. Dalje, ta klasa extend-uje osnovnu Controller klasu pa autoloader mora biti u stanju i nju da učita. Toliko o vezi između dva kontrolera.

Kontroler treba da uradi nešto korisno, ali kako ne bi trebalo da sama biznis-logika bude u njemu, on učitava model i poziva modelove funkcije da mu urade korisne stvari.

Razlog za vađenje logike iz kontrolera je DontRepeatYourself princip. Trebaće ti to da bi kasnije mogao iz neke druge stranice, recimo "registraciona forma", da odmah nakon uspešne registracije odmah i uloguješ posetioca, što bi predstavljalo neko upisivanje u bazu i postavljanje kukija. Zato sve to spakuješ u model i pozivaš iz kontolera, a kasnije kontroler registracione forme može da se uslužno obrati modelu login stranice za tu jednu funkciju.
Model prema tome mora da bude potpuno izolovan od ostatka MVC-a. Ne sme da zna KOJI kontroler ga je pozvao niti KOJI view će biti kasnije pozvan. Na prethodnom primeru vidiš kako dva kontrolera pristupaju jednom modelu pa možeš da pretprostaviš kakve bi probleme sebi napravio kad bi komunikacija bila dvostrana, jednostavno model je tu da "odgovara na pitanja" i "radi poslove".

U modelu i kontroleru "ne bi trebalo" da imaš išta od HTML-a hardkodirano.

Kontroler se nakon petljanja s modelom odlučuje koji će view da iskoristi. Neke varijacije MVC principa ne pozivaju view iz kontrolera nego jednostavno return-uju kontrolu natrag pozivaocu (obično front kontroler) koji onda učitava view koristeći polja koja je taj kontroler postavio, a druge odmah iz kontrolera učitavaju view i ginu sa die().

"kako da saljem u view delu za pregled"
Imaš dva načina za ubacivanje promenljivih u view: push i pull.
Push metod je kad kontroler pripremi sve promenljive za view i jednostavno ih ubrizga tokom pozivanja view-a.
Pull metod je kad prilikom pozivanja view ubrizgaš sam objekat modela (ili kontroler) a view će, umesto da prikazuje promenljive, pozivati modelove funkcije i prikazivati rezultate.
U oba slučaja, onaj ko poziva view to radi otprilike ovako: RenderView($FileName, $DataArray)
a funkcija bi u najosnovnijem obliku bila:
Code:
function RenderView($FileName, $DataArray) {
  extract($DataArray);
  include($FileName);
}

Podatke za $DataArray mora da obezbedi kontroler i najčešće su tu rezultati izvršavanja modelovih funkcija.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Problem sa MVC-om23.08.2011. u 18:26 - pre 153 meseci
OK sada vec kapiram gde sam ja gresio... POmogao mi je poslednji odgovor dosta da realizujem sliku i kod..
Hvala jos jednom
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

[es] :: PHP :: Problem sa MVC-om

[ Pregleda: 1743 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.