Codeigniter klicanje funkcije
 
halo28. dec 2011 13:02:27Pridružen od:
16. maj 2010
75 objav
+14-30
#1Začel sem uporabljati Codeigniter sistem in mi je zelo všeč. Imam pa eno vprašanje.
Ali je mogoče klicati funkcijo iz enega controllerja v drugega tako kot jo lahko znotraj enega npr: $this->show();
všeč(0)ni všeč(0)spam(0)
 
SlimDeluxe28. dec 2011 13:06:34Pridružen od:
29. apr 2010
630 objav
+489-772
#2S tem rušiš design pattern, ki pravi da na 1 request odgovarja le 1 controller.
Če imaš potrebo po takih funkcijah, premisli o smotrnosti izdelave librarya, kjer boš imel te funkcije, ali, morda boljše, extendaš CI_Controller v nek MY_Controller, kjer bodo vse tvoje funckije, ki so skupne dvem ali več kontrolerjem. (osebno uporabljam ta drugo varianto).
Če je funkcija preprosta pa jo lahko daš tudi v helper.
všeč(0)ni všeč(0)spam(0)
 
halo28. dec 2011 14:32:08Pridružen od:
16. maj 2010
75 objav
+14-30
#3hmmm.. ni mi čisto jasno kdaj se posluževati library, helper, driver ali predlagani MY_Controller.
v svojem sistemu imam controller ki ureja komentarje celotne strani. te funkcije bi potem rad uporabit pri prikazu slike, ki bi jo rad komentiral
všeč(0)ni všeč(0)spam(0)
 
php.programer28. dec 2011 15:11:53Pridružen od:
20. sep 2011
53 objav
+11-50
#4jaz sem prebral celotno dokumentacijo + vse primere na net.tuts.com in lahko rečem, da je to pravilna pot, ker vmes še pridobiš veliko drugih odgovorov, ki ti mogoče v "tem trenutku" niso uporabni ;) s tem si boš odgovoril, kdaj uporabljat library, helper, driver, controller,... in kdaj so potrebne spremembe po system folderju! LP
všeč(0)ni všeč(0)spam(0)
 
SlimDeluxe28. dec 2011 15:21:43Pridružen od:
29. apr 2010
630 objav
+489-772
#5halo, večji del procedure, ki se ukvarja s podatki lahko daš v "model", nekaj ti še ostane v kontrolerju in za to ni problema, če maš skopirano. Saj večina kontrolerjevih metod je od 10-20 vrstic max, razen pri večjih formih.
všeč(0)ni všeč(0)spam(0)
 
Ledi28. dec 2011 15:26:21Pridružen od:
14. avg 2008
458 objav
+146-11910
#6v cakephp jaz ponavadi splosno funkcijo dam kar v app_controller ki je dostopen vsem controllerjem. Ce mas pa kas specificnega se pa naredi library
všeč(+1)ni všeč(0)spam(0)
 
halo28. dec 2011 17:16:57Pridružen od:
16. maj 2010
75 objav
+14-30
#7net.tuts mi deluje zelo koristen. opažam da sem se prehitro pognal v programiranje in ne razumem celotnega koncepta. edina stvar po parih tutorialih, ki mi ni povsem jasna je, zakaj se recimo podatki ne obdelajo v controllerju in pošleju v view, kjer bi se samo izpisali.
npr: izpis komentarjev, se v controllerju sestavi v <div> itd, nato se ves ta delni html pošlje v view in samo izpiše. s tem lahko en view uporabiš na vseh straneh, ker ne vsebuje php-ja ampak samo izpis. je tako narobe?
všeč(0)ni všeč(0)spam(0)
 
SlimDeluxe28. dec 2011 17:47:10Pridružen od:
29. apr 2010
630 objav
+489-772
#8To si še enkrat preberi:
http://codeigniter.com/user_guide/general/views.html
V praksi so zelo uporabni t.i. view partials, torej
$string = $this->load->view('myfile', '', true);
potem v tem $string imaš sparsan view in ga v kakšnem drugem lahko uporabiš// Spravi box kategorije v spremenljivko
$data['kategorije'] = $this->load->view('boxes/kategorije_view', null, true);

// Končni prikaz
$this->load->view('glavni_view',$data);
[/quote]
všeč(+1)ni všeč(0)spam(0)
 
halo28. dec 2011 18:46:51Pridružen od:
16. maj 2010
75 objav
+14-30
#9če prav razumem.... v določenem manjšem view-ju obdelaš prikaz, ga shraniš v $data ter posreduješ glavnemu prikazu?
všeč(0)ni všeč(0)spam(0)
 
SlimDeluxe28. dec 2011 19:36:19Pridružen od:
29. apr 2010
630 objav
+489-772
#10Jp, v določenem manjšem viewu obdelaš samo neko smiselno celoto, kot v zgornjem primeru npr. okvirček s seznamom kategorij. Potem ta "manjši view" preprosto echo-jaš v nekem glavnem viewu, kjer želiš da se ta element pojavi.
všeč(+1)ni všeč(0)spam(0)
 
stran 1 od 2 |<<12>|