Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Budowa strony WWW
Forum PHP.pl > Forum > PHP
Vinn
Witam,
PHP bawię się od pół roku - głównie hobbystycznie. Tworzyłem głównie amatorskie stronki, tak aby coraz bardziej rozwijać swoją wiedzę.

Jednak ostatnio naszło mnie jedno pytanie: Jaki jest standard budowy strony www?

Konkretniej chodzi mi o taki przykład:

Załóżmy, że mam skrypt, który wypisuje z bazy danych wszystkie newsy ze strony i odpowiednimi przyciskami można edytować, usuwać, bądź aktywować news'a.

Teraz moje pytanie:
- która metoda jest "lepsza"

1)
Formularz przekierowuje na stronę aktywacja.php, która posiada skrypt aktywujący newsa i ponownie wypisujący listę newsów
<form action="aktywacja.php">

2)
A może przekierowując na tą samą stronę, ale dopisując odpowienią zmienną do adresu, która odsyła do odpowiedniego skryptu?
<form action="?aktywuj=1>

Przyznam się, że korzystam z rozwiązania pierwszego, tylko, że u mnie plik aktywacja.php zawiera oprócz skryptu aktywującego wywołanie funkcji:
naglowek();
menu();
*** skrypt aktywujący newsa ***
stopka();

które zapisane są w pliku z funkcjami i inlcludowane na początku.


Liczę na to, że topik (pomimo tego, że pisany jest przez amatora) zostanie potraktowany poważnie. Nie ukrywam, że najszybciej uczę się z kodu źródłowego, więc miłoby było gdyby ktoś opisujący inną metodę powiązań podał jakiś prosty przykład.
Z racji mojego małego stażu z językiem PHP - nie zagłębiałem się jeszcze w programowanie obiektowe.
JoShiMa
Cytat(Vinn @ 3.07.2008, 10:59:58 ) *
Teraz moje pytanie:
- która metoda jest "lepsza"

1)
Formularz przekierowuje na stronę aktywacja.php, która posiada skrypt aktywujący newsa i ponownie wypisujący listę newsów
<form action="aktywacja.php">

2)
A może przekierowując na tą samą stronę, ale dopisując odpowienią zmienną do adresu, która odsyła do odpowiedniego skryptu?
<form action="?aktywuj=1>

Osobiście korzystam z tego drugiego rozwiązania (uważam, ze bardziej eleganckie), plus wszystko napisane obiektowo i obsługa parametrów wejściowych ($_POST, $_GET) w odpowiednich klasach.

A jak już chcesz tak super elegancko to zacznij się interesować wzorcami projektowymi smile.gif na przykład architekturą MVC i frameworkami smile.gif a co najmniej szablonami w celu oddzielenia php od html.
Kocurro
mod_rewrite + szablony smile.gif

To tak w skrócie - efekt bardzo dobry smile.gif

pozdr.
bim2
Nic nie pobije MVC haha.gif

Naprawdę, programista nie musi martwić się o wywołanie templatki za każdym razem, za przydzielenie parametrów, ustawienie kodowania (w bazie i na stronie) itd. Nie martwi się też o uruchomienie odpowiedniego pliku, aplkiacja sama to zrobi. Jedyne do czego wystarczy się ograniczyć to:
  1. <?php
  2. public function activate()
  3. {
  4. $this->oDb->Update('news', array('status' => 1), 'news_id = '.$this->getInt('newsId'));
  5. $this->go('back');
  6. }
  7. ?>


EDIT: Dodam, że prawa aplikacja też sprawdzi smile.gif
Kocurro
Oj bim2 ... chyba mylisz MVC z frameworkiem winksmiley.jpg

pozdr.
bim2
No trochę się zapędziłem, według mnie MVC to MVC z frameworkiem, bo tak nigdy nie widziałem sensu w znaczeniu tego skrótu. Jeśli MVC to po prostu rozdzielenie akcji modelu i widoku to byle jPortal używa MVC tongue.gif
mike
Cytat(bim2 @ 3.07.2008, 12:35:27 ) *
Jeśli MVC to po prostu rozdzielenie akcji modelu i widoku to byle jPortal używa MVC tongue.gif
Framework i MVC to dwa niezależne pojęcia.
MVC to architektura rozdzielająca warstwy (prezentacji, zarządzania i modelu) a framework to narzędzie do budowy aplikacji.

Zarówno aplikacja spełniająca paradygmaty MVC może być napisana bez frameworka jak i dowolny framework może posłużyć do napisania aplikacji nie spełniającej założeń MVC.

Nie łącz tego.
bim2
To są tylko nazwy. Teraz już wiem ocb, ale nic to nie zmienia. Czy może powstać dobry framework bez MVC? Nie sądzę, chociaż myślę, że zaraz ktoś zmieni moje opinie. smile.gif
mike
Cytat(bim2 @ 3.07.2008, 13:19:15 ) *
To są tylko nazwy. Teraz już wiem ocb, ale nic to nie zmienia. Czy może powstać dobry framework bez MVC? Nie sądzę, chociaż myślę, że zaraz ktoś zmieni moje opinie. smile.gif
Tak. Powstało już bardzo dużo: symfony, ZendFramework, CakePHP, ...

Framework to tylko narzędzie. Może ono co najwyżej wspierać stosowanie danego rozwiązania. Inaczej mówiąc taki framework może być dedykowany do rozwiązań MVC. Tak jest ze wszystkimi liczącymi się w tej chwili na rynku.

Ale spójrz na to: ktoś pisze aplikacje. W widoku pobiera coś z bazy. W modelach formatuje wygląd a w widoku robi tylko echo, umieszcza cześć logiki w widoku, ...
Każdy framework pozwala na takie rzeczy. Zresztą ich nie da się zablokować. Można co najwyżej rekomendować co innego.

Dzięki temu mamy na przykład aplikację napisaną w symfony, która nie jest MVC.
JoShiMa
Cytat(mike @ 3.07.2008, 13:24:23 ) *
Dzięki temu mamy na przykład aplikację napisaną w symfony, która nie jest MVC.

Równie dobrze można bez FrameWorka napisać aplikację która będzie miała oddzielone od siebie warstwyi będzie MVC. Zresztą to nie jedyny wzorzec projektowy.

FrameWork to jedynie narzędzie, które ułatwia (choć nie wymusza) tworzenie aplikacji zgodnych z wybranym wzorcem.
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.