Framework CodeIgniter

0

Postanowiłem zabrać sie za frameworki , jak wiadomo są użyteczne i szybko można dzięki nim napisać coś pożytecznego a wiec
mam pewien problem bo zaczynam poznawać CI ale jedno co mnie w nim denerwuje to to ze np zeby dostać sie do jakieś funkcji to pierw muszę stworzyć kontroler później widok ale przejdźmy do rzeczy
mam taki kontroler

<?php
function kalendarz()
   {
$this->load->library('calendar');
echo $this->calendar->generate();
?>

a wiec zęby sie do niego dostać muszę sie odwoływać do tej klasy ->funkcji ale np jeśli na stronie chce w jakimś danym miejscu wstawić ten kalendarz to co mam zawsze includować go z http://moja site/klasa/funkcja ? i czy ten problem jest z każdym frameworkiem ? , a może to moja wina .Przepraszam jeśli nie wytłumaczyłem tego dość lepiej ale dopiero poznaje świat frameworków i wszystkie zagadnienia z tym związane :)
ps
Jeśli możecie to podajcie mi jakieś linki do artów lub coś podobnego , żebym zrozumiał mvc w przykładach

0

Nie, inkludujesz go pośrednio. Np:

include('files/file.php');

A do funkcji odwołujesz się w ten sposób:kalendarz();


Jeżeli chcesz sie dowiedzieć wiecej to masz www.google.pl jest mnustwo kursów nt. php etc. Osobiscie polecam stronę 
http://php.koderzy.pl
http://kursphp.ovh.org

Jeśli chcesz się zagłębić jeszcze bardziej to prześledz kod jakiegoś cms'a i wszystko bedziesz miał jak na tacy. jportal np. jets prosto i przystępnie napisany

Pozdrawiam
0

Nic nie inkludujesz używając CodeIgitera. W przypadku tego frameworka praktycznie o include/require możesz zapomnieć. Jeżeli stworzyłeś kontroler, a w nim funkcję kalendarz na przykład, to potem wystarczy w innym fragmencie kodu w tym samym kontrolerze zrobić tak:

$this->[nazwa kontrolera]->kalendarz();

ablo po prostu:

$this->kalendarz();

I zadziała. Oczywiście ta procedura od kalendarza co ją napisałeś wyżej nie jest poprawna, bo echo się nie powinno stosować w kontrolerze, a tylko w widoku. A kontroler powinien być klasą o takiej samej nazwie jak nazwa pliku, dziedziczącą po Controller.

http://wortal.php.pl/phppl/wortal/artykuly/php/architektura/wprowadzenie_do_mvc
i przyda się też przestudiowanie podręcznika do CodeIgnitera, tam jest prawie wszystko co można chcieć na temat tego frameworka.

@kujawiak:
Piszesz nie na temat CI. Bez frameworka tak się robi, z nim - można, ale nie ma to sensu.

Jeszcze jedna uwaga - konieczność zrobienia kontrolera i widoku to normalna przypadłość frameworków bazujących na idei MVC. Nie jest to tak szybkie jak tworzenie "normalne", ale w przypadku większych aplikacji internetowych taki CI czy inny Cake są bardzo, bardzo ułatwiającymi pracę narzędziami.

[added]
Troszkę źle napisałem poprzednio. Funkcji z kontrolera nie można chyba wykorzystywać z innych kontrolerów (nie jestem pewien, ale chyba się nie da, albo nie powinno), za to można tak zrobić z modelem albo biblioteką (po jego uprzednim załadowaniu), na przykład:

$this->load->model("foo");
$this->foo->kalendarz();

Kontroler to jest zamknięta całość.

0

A co jest waszym zdaniem lepsze, Code Igniter czy może Cake PHP, czy może też coś innego? :>

0

ja trochę się czepię tego MVC... jak pracowałem z agavi, to do zrobienia jednego "linku" trzeba było utworzyć 4-8 plików, w tym niektóre były właściwie zbędne (np. tylko odwołanie do tpl), jak się zabrałem za swojego, rozwiązałem to trochę inaczej:

  • modele, które odpowiadają za określone funkcje, wykonują obliczenia i komunikują się z bazą (np. news, galeria, forum)

  • moduły (odpowiednik kontrolera?) robią za pośrednika między wejściem użytkownika, wyjściem - smarty i bazą danych - odpowiednimmodelem

  • pliki.tpl (odpowiednik widoku?!) wywoływane przez moduły, formatują i wyświetlają dane przez nie przekazane

pytanie - czy to podchodzi pod ten wzorzec? :D Czy dobrze wymyśliłem? ;)

0

Co prawda schodzimy z tematu, ale:
CodeIgniter jest prostszy nieco od Cake, i dlatego przypadł mi do gustu. Ale widzę, że kujawiak w ogóle o frameworkach nowy temat założył ;-)

Moduły tomkiewicza faktycznie odpowiadają kontrolerom, podobnie szablony widokom. Ja obecnie tworząc aplikację w CI także zrezygnowałem z klasycznych widoków na rzecz szablonów Smarty.

0
Ktos napisał(a)

Ale widzę, że kujawiak w ogóle o frameworkach nowy temat założył ;-)

No własnie założyłem, ale Twojej wypowiedzi tam nie widac :-P Zaintrygował mnie temat symfony i zapraszam do wypowiedzi...

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1