Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Rola bootstrap'a oraz modelu, Pytania poczatkujacego w ZF
azeli
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.06.2012

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


Witam serdecznie,

Staram się zrozumieć poprawnie ZendFramework i po przestudiowaniu kilku artykułów oraz pracy nad pierwszy prostym projektem nasuwa mi się kilka pytań. Jako, że zależy mi aby programować zgodnie z konwencją wzorca oraz frameworka chciałbym to wyjaśnić.

1) Jaka jest dokładnie rola Bootstrap'a jeśli chodzi o inicjowanie danych? Skoro inicjujemy tam np. Doctype to z tego co rozumiem powinno się tam inicjować "globalne" funkcje, które posłużą we wszystkich (większości) widokach.

2) Gdzie w projekcie podczas wywołania w Bootstrap _init... będą widoczne te wartości? Na pewno w widokach, ale czy powinno (można) używać ich także w kontrolerach?

3) W jaki sposob prawidlowo powinienem zaladowac plik JSON do widoku? Rozumiem, ze powinienem stworzyc model, tam dodac operacje ladowania pliku i nastepnie dekodowania JSON oraz przeslac to do kontrolera a ten do widoku? Czy tak? Niezbyt rozumiem w jaki sposob przekazac dane pomiedzy modelem a kontrolerem i widokiem.

Jesli ktos zna artykuly lub ma cos do polecenia to chetnie poczytam. Przepraszam, jesli pytania sa nieprecyzyjne ale jeszcze nie opanowalem dobrze terminologii OOP w ZF.

Pozdrowka
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fluke
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


Ja też jestem początkującym ZF ale myślę że coś mogę pomóc:

1) Jeśli chodzi o Doctype to inicjowanie go w Bootstrap jest raczej zbędne, od tego jest widok i tam go wywołujesz za pomocą odpowiedniej metody helpera Zend_View:
  1. $doctypeHelper = new Zend_View_Helper_Doctype();
  2. $doctypeHelper->doctype('XHTML1_STRICT');


2) metoda _init w bootstrapie jest przeznaczona do ustawiania zachowania całej aplikacji czyli jeśli chcesz załadować translator z odpowiednim językiem możesz wywołąć
  1. ...
  2. function _initTranslate()
  3. {
  4. $translate = Zend_Translate();
  5. ....
  6. }
  7. ...


3) W modelu raczej przesyłasz array`ie, które są tworzone z danych z bazy danych(i nie tylko). Model jeszcze jest odpowiedzialny za akcje kontrolera, czyli w zależności co kontroler przekaże to modelu(w parametrach metod) ten ma obrobić dane oraz przesłać w postaci array(i nie tylko). Natomiast kontroler przesyła dane do widoku, który ten przesyła do kontrolera i tak w kółko. Widok nie ma dostępy bezpośredniego do Modelu. Cala komunikacja opiera się przez kontroler.

Jeśli chcesz przesłać tablice w postaci JSON do widoku to robisz w kontrolerze $this->view->assign("tablicaJSON", json_encode($array));

Mam nadzieję, że coś pomogłem
Pozdrawiam (IMG:style_emoticons/default/smile.gif)

Jeśli chodzi o Doctype to możesz go wywołać w widoku(w pliku .phtml) w ten sposób:
  1. $this->doctype("HTML5");
Go to the top of the page
+Quote Post
azeli
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.06.2012

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


Dzieki za komentarz. Glownie chodzi mi o to, ze nie chce miec balaganu w projekcie. Chciałbym dane i konfiguracje mieć w jednym miejscu czy pliku. Niezbyt przekonuje mnie rozwiązanie aby w każdym widoku ręcznie wpisywać doctype. To nie najlepszy przykład, ale co jeśli chcę go zmienić? Oczywiście to tyczy się wielu innych elementów konfiguracji.

(Pomijam kwestie bazy danych)

Czy uwazacie, ze dla roznych danych zwracanych z bazy powinno sie tworzyc osobny model, czy jednak polaczyc to?

Czuje ze bardzo trudno bedzie mi obrac odpowiednia konwencje do programowania (IMG:style_emoticons/default/sad.gif) Skad mam wiedziec do jakich operacji dodac model, do jakich kontroler; tzn. kiedy jest granica miedzy zastosowaniem jednego modelu/widoku/kontrolera a kiedy nalezy je dzielic i jakie zaleznosci sa miedzy nimi (IMG:style_emoticons/default/sad.gif)



Ten post edytował azeli 7.06.2012, 12:28:43
Go to the top of the page
+Quote Post
Fluke
post
Post #4





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


Doctype dodajesz w pliku z layout, jeśli masz więcej niż 1 moduł do wklejasz do każdego ale tylko raz.

Do modelu:
Jeśli masz tabele 'user' to tworzysz model User i on ma odpowiedzialność za wyciąganie danych z bazy oraz ich modyfikację. Możesz również stworzyć modele typu User_Update, User_Select, User_Inser...i tak dalej, wedle uznania.

1) Widok przekazuje dane do kontrolera metodą POST lub GET lub innym sposobem (formularze)
2) Kontroler wyciąga dane z modelu i przekazuje do widoku
3) Kontroler wyświetla przeważnie 1 widok, który zazwyczaj jest nazwą akcji kontrolera, w widoku zawsze możesz podzielić dany lay na inne i za pomocą metody action bądź render wyświetlasz resztę.

W widoku nie umieszczasz nic innego jak czysty html i przekazane zmienne z kontrolera.
Model ma za zadanie przetworzyć dane przekazane z kontrolera, wykonać zapytania do bazy i zwrócić wynik jaki chciał kontroler.
Go to the top of the page
+Quote Post
azeli
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.06.2012

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


Okej, dzieki bede drazyc. Najwyzej na konkretnych przykladach w kodzie cos popytam.
Dzieki wielkie za odpowiedz
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 06:35