Wzorce projektowe Php

Ok, chciałbym najpierw zauważyć, że szukałem "wzorców projektowych PHP mvc" i tak naprawdę nie znalazłem tego, czego szukałem; nadal teraz, pisząc moje pytanie, nie mogę znaleźć żadnego powiązanego i tak konkretnego pytania, jak mam zamiar zadać. Ale wiem, że pewnie się mylę, w każdym razie zastanów się nad tym pytaniem i pakietem pytań, który może być przydatny.

Pytanie

  1. zastanawiałem się, jak powinniśmy rozważyć wzorce projektowe. Mam na myśli: jakie są oni? Czy są to po prostu pliki binarne, które pomagają nam projektować spójną aplikację? Są tak używane? Dlaczego?
  2. Gdzie mogę znaleźć listę wszystkich wzorców projektowych w sieci? A przynajmniej 5-10 najczęściej używanych wzorców projektowych?
  3. czy Phpbb, WordPress lub Joomla (które znam dość dobrze) używają wzorca projektowego? Jeśli tak, to co?
  4. wygooglowałem MCV PHP i znalazłem około 3 włoskich artykułów i przeczytałem około 5 pierwszych stron w rankingu i prawie nic nie zrozumiałem. Oni były sprzeczne i wydawało mi się mylące. Zrozumiałem, że warto oddzielić biznesowy login, skrypt i widok (?) ale nie mam nic innego. Pewnie jestem głupi czy coś, ale gdzie mógłbym znaleźć miły i oficjalny (czyli napisany przez Gang of Four lub kogoś, kto faktycznie wie o czym mówi) tutorial mvc lub dokumentację związaną z php?
  5. czy są proste przykłady na temat wzorców projektowych i jak są one lepsze niż (normalne) style pisania? Są są proste przykłady dotyczące mvc lub innego wzorca projektowego? Na przykład prosty blog napisany wzorem projektowym?

Porady

Najpierw wolałabym darmowe rozwiązanie. Nie lubię frameworków, więc proszę nie odnosić się do nich, nawet jeśli (wiem) mają mvc i inne ważne wzorce projektowe i korzyści. Nadal ich nie lubię. Dzięki

Notice

Pojutrze wybieram akceptowaną odpowiedź, więc proszę, nie spiesz się na odpowiedź.
Author: Shoe, 2010-12-03

4 answers

Co to jest?

Wzorce projektowe są językowo-agnostycznymi rozwiązaniami dla typowych problemów. Nie są to kody do pobrania ani gotowe implementacje, ale podejście teoretyczne, które można zaimplementować/przełożyć na działające rozwiązania.

Wzorce projektowe pozwalają również na łatwiejszą komunikację między programistami znającymi wzorce, ponieważ gdy deweloper A mówi: to jest fabryka, deweloper B będzie wiedział, co to znaczy.

Gdzie mogę znaleźć lista wszystkich szablonów projektowych w sieci? A przynajmniej 5-10 najczęściej używanych wzorców projektowych?

Istnieje również godny polecenia książka PHP Design Patterns (tylko w języku niemieckim), do której można pobrać próbki kodu pod adresem http://www.phpdesignpatterns.de/auflage-2/#beispiele

Czy phpbb, WordPress lub joomla (które znam dość dobrze) używają wzorca projektowego? Jeśli tak, to co?

Prawdopodobnie, ale wymienienie każdego wzorca używanego przez aplikację jest raczej bezcelowe. Niektóre wzory są malutkie, inne bardziej złożone. Nie używasz ich do używania, ale do rozwiązywania problemów.

Pozwól mi podkreśl, że: nie używasz ich, aby z nich korzystać. Nie są one jakimś symbolem statusu. Nie chcesz ich gromadzić. Nawet nie musisz ich wdrażać zgodnie z przepisami. Używaj ich tam, gdzie jest to właściwe, z każdą odmianą wymaganą do rozwiązania konkretnego problemu w aplikacji.

Wygooglowałem MCV PHP i znalazłem około 3 włoskich artykułów i przeczytałem około 5 pierwszych stron w rankingu i nie rozumiałem prawie nic. Były sprzeczne i wydawały mi się mylące. I did understand że warto oddzielić biznes login, skrypt i widok (?) ale ja nic nie mam.

MVC nie jest wzorcem GOF. Jest wymieniony w POEAA, ale jest o wiele starszy. MVC, który zwykle widzisz w sieci, nie ma nic wspólnego z" klasycznym " MVC, ponieważ istnieje internet między widokiem a dwoma pozostałymi.

Zasadniczo, nie ma wiele do wiedzy o MVC. To bardzo prosty wzór. Chodzi o to, aby podzielić interfejs użytkownika na trzy różne role. Model to twoja sprawa logika. Twój kontroler obsługuje wszelkie żądania z widoku i deleguje je do modelu. Widok wyświetla model. Powinieneś mieć możliwość wymiany kontrolera i widoków bez konieczności dotykania modelu.

Czy są proste przykłady na temat wzorców projektowych i jak są one lepsze niż (normalne) style pisania?

Mnóstwo. Zobacz linki powyżej dla niektórych przykładów. Jeśli nie są wystarczająco jasne, rozejrzyj się po StackOverflow szukając ich nazw.
 17
Author: Gordon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:04

Prawdopodobnie uzyskałbyś lepsze wyniki googling dla MVC PHP zamiast MCV PHP. Wzorce projektowe mogą być stosowane do wszystkich języków obiektowych, więc możesz być najlepiej poinformowany aby zajrzeć do The design pattern book i do programowania obiektowego z PHP.

Istnieje również seria artykułów na DZone o praktycznych wzorach PHP.

 3
Author: Daff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-03 19:07:43

Oto lista wzorców projektowych ( nie tylko dla PHP): Wikipedia

 0
Author: yvoyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-03 19:12:24

Radzę również przyjrzeć się PHP design patterns list. Mam nadzieję, że się przyda.

 0
Author: xtreemcoder.com,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 22:06:58