Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]MVC początki
RybkaNati
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.02.2014

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


Witam, zwracam się z prośbą o pomoc. Nie mam problemów ze zrobieniem strony w php, ale zawsze robiłam to proceduralnie. Próbuje od kilku dni przerzucić się na Obiektowe PHP i chyba nie za dobrze mi idzie. Nie chce korzystać z bardzo rozbudowanych Frameworków, bo robię strony zazwyczaj dla własnego użytku i nie jest to nic skomplikowanego - więc po co mi tak duża platforma. Chce stworzyć coś dla siebie z możliwością ewentualnej rozbudowy w przyszłości. Doczytałam że wzór projektowy MVC jest specjalnie dla takich projektów. Zaznajomiłam się z kilkoma tekstami chodź nie są chyba dla mnie aż tak oczywiste... po tych przejściach próbuje stworzyć sobie coś takiego:

index.php
  1. <?php
  2. class Controller {
  3. public function aktualnosci() {
  4. $this->model = new Model();
  5. $this->model->aktualnosci();
  6. $this->view = new View();
  7. $this->view->aktualnosci();
  8. }
  9. }
  10.  
  11. class Model {
  12. public function aktualnosci() {
  13. $this->zmienna = 'OK';
  14. }
  15. }
  16.  
  17. class View {
  18. public function aktualnosci() {
  19. require 'views/aktualnosci.php';
  20. }
  21. }
  22.  
  23. $controller = new Controller();
  24. $controller->aktualnosci();
  25. ?>

Na razie Controller i Model i View prezentuje w jednym pliku

views/aktualnosci.php
  1. <hr />
  2. <?php echo $this->zmienna ?>


Pytanie brzmi czy o to chodzi w MVC(oczywiście controller, model i views będą w osobnych plikach) i czy albo jak przekazać z Model zmienne do View?

Dziękuje z góry za pomoc, ale dla mnie za bardzo to nie jest oczywiste sad.gif
Go to the top of the page
+Quote Post
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


Ogólnie złą ścieżkę nauki wybrałeś. Wybierz jakiś mini framework silex , spawnframework i twórz smile.gif 3 razy szybciej pojmiesz zarys niż sam byś klepał swój własny twór
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(RybkaNati @ 8.02.2014, 16:18:55 ) *
Pytanie brzmi czy o to chodzi w MVC(oczywiście controller, model i views będą w osobnych plikach) i czy albo jak przekazać z Model zmienne do View?


Tak, o to chodzi i takie są ogólne założenia. A jak przekazać dane do widoku np. jako parametr metody w formie tablicy.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
RybkaNati
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.02.2014

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


Cytat(memory @ 8.02.2014, 16:35:01 ) *
Ogólnie złą ścieżkę nauki wybrałeś. Wybierz jakiś mini framework silex , spawnframework i twórz smile.gif 3 razy szybciej pojmiesz zarys niż sam byś klepał swój własny twór

Właśnie sprawdzam spawnframework i zobaczę co z tego będzie, ale już na wstępie widzę na ich stronie że dla małych i średnich stron... a jaką ja mam pewność, że moja strona ne będzie musiała się bardzo rozrosnąć? I co wtedy?

Cytat(!*! @ 8.02.2014, 16:39:57 ) *
Tak, o to chodzi i takie są ogólne założenia. A jak przekazać dane do widoku np. jako parametr metody w formie tablicy.

A mogę prosić o przykład bo już kombinowałam na kilka sposobów i... bez efektów. sad.gif
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(RybkaNati @ 8.02.2014, 17:24:31 ) *
Właśnie sprawdzam spawnframework i zobaczę co z tego będzie, ale już na wstępie widzę na ich stronie że dla małych i średnich stron... a jaką ja mam pewność, że moja strona ne będzie musiała się bardzo rozrosnąć? I co wtedy?


A mogę prosić o przykład bo już kombinowałam na kilka sposobów i... bez efektów. sad.gif


Nie ma FW dla małych, średnich czy dużych stron, są tylko te napisane optymalnie lub te w których panuje burdel przez co są przerośnięte.

Jak przestanie Ci odpowiadać jakiś FW to zmieniasz go na inny lub starasz się nagiąć jego możliwości.

przykład... a jak przekazujesz parametry do metody? wink.gif

  1. $theme = array('title' => $this->daneZmodelu());
  2.  
  3. $view = new View($theme);
  4. //lub
  5. $view->showNews($theme);


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
RybkaNati
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.02.2014

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


Kurde coś przy-tępawa jestem chyba.... lub nie ogarniam za bardzo tego. dane mają pochodzić z Model
  1. <?php
  2. class Model {
  3. public function aktualnosci() {
  4. //np.
  5. //$zmienna = 'OK';
  6. //lub
  7. //$tablica = array('title' => 'Moja tablica z tytułem');
  8. }
  9. }
  10. ?>

Jak taką zmienną utworzyć lub tablicę w Modelu a potem w Controller przesłać do Widoku?

  1. <?php
  2. class Controller {
  3. public function aktualnosci() {
  4. //? $model = new Model();
  5. //? $model->aktualnosci();
  6.  
  7. $view = new View();
  8. $view->aktualnosci();
  9. }
  10. }
  11. ?>


a potem jak w samym View tę zmienna wyświetlić?

  1. <?php
  2. <p><?php echo $tablica['title'] ?></p>
  3. <p><?php echo $zmienna ?></p>
  4. ?>


Ten post edytował RybkaNati 8.02.2014, 18:19:40
Go to the top of the page
+Quote Post
Turson
post
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Działasz na jakimś frameworku czy własny tworzysz? Z twojego kodu nie wiadomo.

Zasada działania jest taka. Powiedzmy, że chcesz pobrać z bazy coś.

Model -> metoda pobierania rekordów z bazy. Zwracasz tablicę. Np. metoda getAllNews() zwraca $rows
Kontroler -> robi instancję modelu i przekazuje go do widoku
Widok -> z odebranych danych z kontrolera np. pokazuje wszystkie newsy. $model->getAllNews()
Go to the top of the page
+Quote Post
RybkaNati
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.02.2014

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


To jest własne rozwiązanie i potrzebuje jak wyżej przesłać dane z Modelu (zmienna i tablica) poprzez Controller do Widoku i odczytać go w Widoku. Mam z tym problem gdyż dopiero ogarniam temat Obiektowego PHP. Nie chce za bardzo gotowych rozwiązań, gdyż jako kobieta wole mieć nad wszystkim kontrolę. Poza tym wszyscy tłumaczą się, że lepiej z jakiego Frameworka niż pisać coś od nowa a przecież pisząc strukturalnie robiłam to cały czas! Plusem własnego rozwiązania MVC będzie dla meni to że classy będę miała już gotowe. Proszę więc o pomoc w rozwiązaniu tego jak dla mnie trudnego problemu... abym mogła próbować dalej i uczyć się na własnych metodach i błędach.
Go to the top of the page
+Quote Post
!*!
post
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Może to Ci pomoże http://ferrante.pl/frontend/php/wzorzec-mvc-w-php/ lub http://phpedia.pl/wiki/MVC


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
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 Aktualny czas: 21.08.2025 - 09:50