Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> phpDocumentor i MVC, dokumentacja dla kontrolera
Xathloc
post 20.10.2006, 08:52:36
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Podczas dokumentowania projektow mam niedomiennie ten sam problem. PHPDocumentor generuje z założenia dokumentację dla klas. Kontroler klasą nie jest i co za tym idzie jest ignorowany podczas tworzenia dokumentacji. Dla mnie kontroler, jako element spinający całość, jest najlepszym miejszcem do zawarcia najobszerniejszego opisu.
Jak wy rozwiązujecie problem dokumentacji kontrolera i całości aplikacji/modułu? Czy korzystacie z innych narzędzi?
Jak dla mnie PHPDocumentor jest najwygodniejszy, bo znajduje się w ZDE, którego używam.


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
dr_bonzo
post 20.10.2006, 09:32:21
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Przenosze na php


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
marast78
post 20.10.2006, 14:29:23
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

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


ja używam wzorca FrontController(a możesz użyć Application Controller) i Strategy, i kontoler jest u mnie klasą, przynajmniej tak jest w rozwiązaniach webowych (poparte literaturą stiwerdzenie Czym jest kontroler?) choć tak naprawdę jest on pewnym mechanizmem otrzymania i interpretacji żadania (z HTTP, klawiatury itp.) przekazując je do odpowiedniego modelu lub widoku, lecz czy nie może być klasą? więc nie ma problemu, żeby wygenerować z nich dokumentację używająć PHPDoc, nie rozumiem jednego więc czym u ciebie jest kontroler, jak wygląda w implementacji (u mnie jest klasą) używając MVC rozumiem, że piszesz aplikację obiektowo u mnie klasa ta ma metodę która automatycznie wykrywa jaki obiekt ma zainicjalizować i tu pomocy jest model DAO, poza tym weźmy na to przykład z javy, gdzie rolę kontrolera spełnia Servlet więc jest on klasą... No więc czy kontroler w rozumieniu programisty php nie jest klasąquestionmark.gif


--------------------
Go to the top of the page
+Quote Post
Xathloc
post 20.10.2006, 14:41:34
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Kontroler może być klasą, ale często wygodniej jest kiedy przyjmie postać prostego switch'a (wszystko zależy od aplikacji/modułu, który tworzymy). U mnie przypadek ten stanowi ok. 80% zleceń. Dlatego też szukam dobrej metody na dokumentowanie tego typu aplikacji/modułów.
Czasem nie warto tworzyć stuktur, które są zbyt rozbudowane i "poważne" do stawianych przed nimi zadań.


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
Go to the top of the page
+Quote Post
marast78
post 20.10.2006, 14:55:01
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

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


na switchu i po co się tak męczyć po to są wzorce, żeby mieć więcej wolnego czasu winksmiley.jpg no chyba, że twoje akcje to jakieś pojedyncze instrukcje...

Ten post edytował marast78 20.10.2006, 14:57:11


--------------------
Go to the top of the page
+Quote Post
Xathloc
post 20.10.2006, 15:02:34
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Cytat(marast78 @ 20.10.2006, 15:55:01 ) *
na switchu i po co się tak męczyć po to są wzorce, żeby mieć więcej wolnego czasu winksmiley.jpg no chyba, że twoje akcje to jakieś pojedyncze instrukcje...


Zależy od konkretnego przypadku. Ale jak pisałem, w 80% przypadków kontroler nie jest specjalnie rozbudowany. Wzorce owszem, warto stosować, ale wtedy kiedy złożoność aplikacji to uzasadnia. A dokumentacja przydaje się niezależnie od złożoności (no może bez przesady ^^). I ciężko mi jest bez niej rozwijać moduł kiedy Klient zażyczy sobie po roku nowej funkcjonalności.


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
Go to the top of the page
+Quote Post
dr_bonzo
post 20.10.2006, 16:34:08
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Switch jest najbeznadziejniejszym rozwiazaniem.

Juz lepiej wrzucic mapowanie nazyw akcji do pliku.
np:
include( $mapa_akcji[ oczysc_nazwe_akcji_z_niebezpiecznych_znakow( $_GET['akcja' ] ) ] );
(gdy dodajesz kolejna akcje to wystarczy dodac kolejny element tablicy:
$mapa_akcji[ 'new_action' ] = "../sciezka/plik.php" + utworzyc plik z akcja

Idac dalej: nazwapliku moze byc identyczna jak nazwa akcji
include( oczysc_nazwe_akcji_z_niebezpiecznych_znakow( $_GET['akcja' ] ) ] . 'php' );
+ sprawdzenie czy plik istnieje
dodanie nowej akcji to tylko dodanie pliku z akcja

Lub jeszcze (jak pisal marast78):
kazda akcja to osobna klasa (jak w Agavi/Mojavi), lub metoda kontrolera (Symfony, RoR , ZF)
dodanie nowej akcji to tylko dodanie pliku z klasa akcji, no i masz wieksze mozliwosci niz przy zwyklym includowaniu


A w switchu? Musisz edytowac KOD skryptu i dodac nowe pliki. Po co to robic gdy wystarczy tylko utworzyc plik z akcja?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Xathloc
post 20.10.2006, 18:36:11
Post #8





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Cytat(dr_bonzo @ 20.10.2006, 17:34:08 ) *
A w switchu? Musisz edytowac KOD skryptu i dodac nowe pliki. Po co to robic gdy wystarczy tylko utworzyc plik z akcja?

Zaraz, jako to?
A czym się różni utworzenie nowego pliku z akcją od dodania akcji do switch'a?
Tak czy inaczej muszę nauczyć odbiornik, że pojawiła się nowa akcja i utworzyć dla niej kod. Przy niezbyt rozbudowanych projektach zaczyna się pojawiać więcej kodu obsługującego framework niż wykonującego czynności wymagane z punktu widzenia modułu.
Zgadzam się, że switch'e dla dużych projektów są niewygodne (ale nie najbeznadziejniejsze).


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
Go to the top of the page
+Quote Post
dr_bonzo
post 20.10.2006, 18:53:40
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Jwsli w switchu wykonujesz max 1-5 instrukcji (dla pojedynczej akcji) to jeszcze moglbym to przebolec.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Xathloc
post 20.10.2006, 18:58:55
Post #10





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Cytat(dr_bonzo @ 20.10.2006, 19:53:40 ) *
Jwsli w switchu wykonujesz max 1-5 instrukcji (dla pojedynczej akcji) to jeszcze moglbym to przebolec.

Dokładnie o tym mówię ^^ Są sytuacje, kiedy budowanie osobnych klas, mapowanie itp. nie mają sensu. Jednocześnie ilość akcji może być całkiem spora, no i trzeba to jakoś odokumentować tongue.gif
I tu powraca moje pytanie.

Ale z tego co widzę, to MVC raczej używane jest przez was do projektów dużych i bardzo dużych.
Dla mnie jest to prosta metoda zachowania porządku w aplikacji/module każdej wielkości, ułatwienie pielęgnowania kodu i rozwoju. Może faktycznie jest to uproszczony model MVC, ale nadal zgodny z założeniami smile.gif


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
Go to the top of the page
+Quote Post
dr_bonzo
post 20.10.2006, 19:31:27
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Tzn. masz tego switch'a w glownym pliku, poza jakakolwiej funkcja i chceszgo zdukumentowac?
Tak sie nie da.

Wrzuc to wszystko w jedna klase, a kazda akcje wstaw do osobnej funkcji:

  1. <?php
  2. function dispatch()
  3. {
  4.  
  5. switch()
  6.  { 
  7.  case "costam" : $this->costam();
  8.  case "....
  9. }
  10. }
  11. ?>


// choc i tak przyda sie automatyczne wywolywanie funkcji smile.gif

No i teraz masz funkcje klasy ktore phpdoc zauwazy.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Xathloc
post 20.10.2006, 19:46:51
Post #12





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.09.2006
Skąd: znad klawiatury

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


Tak, ale wracamy do punktu wyjścia.
Chyba faktycznie phpDoc zmusi mnie do robienia wszystkiego porządnie i tworzenia klasy kontrolera zamiast kontrolera strukturalnego tongue.gif
W każdym razie dziękuję wam za pomoc.
I zmuszenie do porzucenia nieprawidłowych nawyków aaevil.gif
Ale to już w wersji 1.1 tego modułu tongue.gif
1.0 własnie rusza do Klienta.


--------------------
pozdrawiam
Krzysiek

RIP sygnaturka
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: 13.06.2025 - 00:44