Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CodeIgniter]codeigniter: właściwe użycie widoku
Forum PHP.pl > Forum > PHP > Frameworki
zephyr7
Chciałbym zapytać, jak powinno się POPRAWNIE złożyć widok w CI:

Powiedzmy, że mamy backoffice administratora (nagłówek, menu po lewej, content, stopka)
i zmienia się tylko środek ($content).

Jeśli mam kilka "akcji", przy każdej z nich muszę na nowo definiować każdy element widoku:

  1. $data['title']=$this->lang->line('users_backoffice');
  2. $data['head']=$this->load->view('users_header','',true);
  3. $data['content']=$this->load->view('users_categories',$categories,true);
  4. $this->load->view('users_home',$data);


Przy kilkudziesięciu "akcjach", ten sam kod ulegnie powtórzeniu kilkadziesiąt razy smile.gif, co jest sprzeczne z ideą stosowania frameworka! smile.gif

Teoretycznie, mógłbym umieścić niektóre elementy w konstruktorze, a z poziomu każdej funkcji wywoływać tylko $content

Chciałbym zapytać, jak z tym problemem radzą sobie zawodowcy kodujący w CI. Jaki jest POPRAWNY sposób obsługi widoków składających się z kilku elementów, jak menu, nagłówki, stopki, itp.? W cake'u ładuje się strony, albo szablony z elementami - co wydaje się sensowe. W CI wszystko jest "na odwyrtkę" smile.gif
nrm
Zawodowcy nie robią w CI. Wiem, że nie takiej odpowiedzi oczekujesz, ale robienie dzisiaj w CI to masochizm.

Aby uzyskać efekt jakiego oczekujesz wystarczy proste dziedziczenie, nadrzędny kontroler odpala główny layout i tam masz już swoje headery, footery i inne, a podrzędny z konkretna akcją zajmuje się tylko danym fragmentem.
zephyr7
Dzięki za odpowiedź smile.gif CI używam "z musu" i jeszcze przez jakiś czas będę musiał się z nim pomęczyć...

A teraz troszkę filozoficznie:

- Zawodowcy nie kodują od zera
- zawodowcy nie kodują w cake'u
- zawodowcy nie kodują w CI

heheh, no to w czym?questionmark.gif? biggrin.gif
pedro84
Yii, Symfony, Zend, Kohana
zephyr7
Symfony - wiem, że świetne,

ale YII rzeczywiście taki dobry? Spotkałem się z opiniami, że to trochę "szalony" framework?questionmark.gif
pedro84
Zobacz sobie Symfony 2, to jest dopiero cudo :] Tylko, że do tego to już jest naprawdę potrzebna wiedza.

Yii? Z tymi negatywnymi opiniami się nie spotkałem, ale trochę w nim napisałem i mogę powiedzieć, że framework niezły. Szybko się w nim nie pisze, pisze się w nim błyskawicznie. Dobra dokumentacja to plus. Masz widżety, dużo rzeczy Co odpada. Generator, do prostszych rzeczy, to bajka.

Kohana to takie leciutki stworzonko, szybkie. Minusem są jego twórcy, którzy sami nie wiedzą czego chcą.

Z tych wymienionych nie używałem zbyt dużo Zenda, jakoś do mnie nie przemawia. Zabij, nie wiem czemu. Nie lubię i tyle.
phpion
Cytat(pedro84 @ 5.08.2011, 14:44:02 ) *
Yii? Z tymi negatywnymi opiniami się nie spotkałem, ale trochę w nim napisałem i mogę powiedzieć, że framework niezły. Szybko się w nim nie pisze, pisze się w nim błyskawicznie. Dobra dokumentacja to plus. Masz widżety, dużo rzeczy Co odpada. Generator, do prostszych rzeczy, to bajka.

Zgadzam się. Od jakiegoś czasu wgryzam się w Yii i faktycznie robi wrażenie. Warto poświęcić mu chociaż chwilę na ogólne rozeznanie się.

Cytat(pedro84 @ 5.08.2011, 14:44:02 ) *
Kohana to takie leciutki stworzonko, szybkie. Minusem są jego twórcy, którzy sami nie wiedzą czego chcą.

Na Kohanę złego słowa nie powiem, ale w wersji 2.3.4. To, co aktualnie wyprawia się z wersją (wersjami!) 3.X to naprawdę kaplica. Podejście devów jest wręcz żenujące więc osobiście radzę unikać nowszych wersji, natomiast K2 mogę z czystym sumieniem polecić.

Wracając do tematu: w Kohanie masz klasę Template_Controller - w CI jest coś podobnego:
http://williamsconcepts.com/ci/codeigniter...aries/template/
Powinno Ci przypasować smile.gif
vvolv
Osobiście korzystam z http://codeigniter.com/wiki/codeigniter-template/
Wygląda to mniej więcej tak, że w głównym kontrolerze(który jest dziedziczony) ładuje wszystko to co się na pewno nie zmienia.
We właściwym kontrolerze jest tylko wrzucany "środek" strony. Dla większej elastyczności jest jeszcze dorzucony system widgetów, ale to jest akurat najmniej ważne.

Normanos dlaczego uważasz, że programowanie w CI to masochizm?
jacobson
podlaczylbym sie pod to pytanie powyzej... sam w codeigniterze ostatnio wiecej pracowalem i musze przyznac ze nie mam wiekszych problemow z nim ...
szok
Tu masz rozwiązanie problemu:

http://codeigniter.com/wiki/layout_library/

Tak swoją drogą to CI chyba jest jednym z najpopularniejszych frameworków do PHP na świecie (nie w Polsce)
http://www.google.com/trends?q=codeigniter...work%2C+symfony

Nie widać trendu spadkowego. Skoro ludzie w Google szukają o nim informacji i rozwiązywania problemów to coś się musi dziać smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.