Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CI/OOP - Pola klasy a dane wysyłane do widoku
adbacz
post 25.09.2011, 18:49:27
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Pracuję od dłuzszego czasu z CodeIgniter-em i zagłębiam się coraz bardziej w OOP. Napisałem sobie małą klasę, do tego model i kilka widoków (jak to MVC) i teraz moje pytanie. Czy wysyłać (za pomocą klasy CI) dane do widoku tworzac nowe zmienne czy może niektóre dane używać w polach klasy?

Zastanawia mnie co jest szybsze dla skryptu i wygodniejsze dla programisty. Do tej pory wysyłałem wszystko do widoku za pomocą klasy CI, która tworzy nowe zmienne dostepne w widoku, ale wydaje mi się, że używanie pól klasy jest lepszym wyjściem bo nie trzeba nic na nowo tworzyć i definiować ponieważ te pola są od razu dostępne na poziomie widoku.

Prosiłbym o zdanie starszych programistów, czy mój tok myślenia jest dobry?


PS. @Do moderacji: Nie wiedziałem gdzie dać temat, czy tu czy do Framework-ów, więc jeśli zły to prosze o przeniesienie.

Wpadłem na jeszcze jeden pomysł. Zamiast używać wielu pól danej klasy, na początku kazdej klasy zdefiniować puste pole np, $ViewData = array(); i podczas działania skryptu, dodawać kolejne wartości pod dany indeks. W taki sposób nie musiałbym zupełnie nic wysyłać do widoku, automatycznie wszystkie publiczne pola klasy byłyby tam widoczne a klasa odpowiedzialna za wysyłanie danych do widoku i wywoływanie widoku nie musiała by tworzyc nowych zmiennych co wg mnie zwiekszyłoby troszeczkę szybkość w większych, bardziej rozbudowanych skryptach.

Co Wy na to?

Ten post edytował adbacz 19.09.2011, 13:50:23
Go to the top of the page
+Quote Post
szok
post 29.09.2011, 08:06:17
Post #2





Grupa: Zarejestrowani
Postów: 165
Pomógł: 20
Dołączył: 2.03.2006

Ostrzeżenie: (0%)
-----


Rób tak jak pisze dokumentacja.
Wtedy będzie to szybko i wydajnie pracowało.

Jak będziesz korzystał z pól klasy która jest kontrolerem to przy każdej akcji (metody) będziesz ustawiał te dane, albo nie potrzebnie zajmował pamieć skryptu, bo np: przy usuwaniu czegoś, nie potrzebujesz danych do wyświetlenia.


--------------------
Go to the top of the page
+Quote Post
adbacz
post 30.09.2011, 10:34:33
Post #3





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Na początku skryptu ustawiam puste pole w którym jest pusta tablica:
  1. var $aViewData = array();

A do tego dopiero później przypisuje pod odpowiedni inteks jakieś dane. Wg mnie to nie jest jakies zbędne zajmowanie pamięci, pole wypełnia sie dopiero gdy w kontrolerze dojdzie do zapisania w nim jakiś informacji.

  1. //jakis skrypt
  2. $this->aViewData['option_one'] = 'jakies_dane';
  3. //Dalszy skrypt
  4. $this->aViewData['db_results'] = array();
  5. $this->aViewData['db_results'] = $this->model->pobierz_dane(); //Dane pobrane z bazy danych
  6. //I może coś jeszcze
  7. $this->load->view('nazwa/widoku'); //Tutaj tylko podaje nazwę widoku, nie podaję tablicy z danymi, które mam przesłąć bo one jjuż są zamieszczone w polu klasy $this->aViewData


Kiedyś gdzieś czytałem, że początkujący programiści zbyt często używają nowych zmiennych, których tak na prawdę nie musiałoby w danym miejscu być a co troszke obciąza skrypt/serwer. No więc idąc takim tokiem myślenia i wiedząc, że 95% metod wywoływanych w moich skryptach to akcje w których wyświetlam jakieś dane pomyślałem, że użycie jednego pola klasy nie jest czymś nadzwyczajnym a być może troszkę zaoszczędzę na tworzeniu zmiennych w widokach bo czasami jest tak, że do widoku przesyłałem dużo różnych wiadomości i tworzyło się średnio 15 różnych zmiennych w tym tablice ;/

Co masz na myśli pisząc o usuwaniu czegoś? Chodzi Ci o metodę która nie wyświetla nic tylko pośrednikiem w wymianie danych, po czym przekierowuje na inną?

Ten post edytował adbacz 30.09.2011, 10:38:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 16:57