![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%) ![]() ![]() |
Witam,
właśnie zacząłem próbować pisać cos obiektowo w php... na razie wyszło mi coś takiego: klasa do łączenia z bazą danych
klasa do zarządzania podstronami:
oraz zastosowanie:
nie pisałem narazie nic wiecej, sprawdzania poprawnosci wpisanych danych itp. czytałem kilka tematów na tym forum, starałem się nie popełniać błędów innych... wątpie żeby mi się to udało.. ale mam kilka pytań (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) 1. co jest źle? co napisalibyście inaczej? 2. jak to poprawnie napisać stosując szablony MVC? z tego co wiem to strona widoku może mieć PHP ale tylko podstawowa skladnia typu for, if, while... tylko jak to rozbić na kontroler i model? czy przy tak prostych klasach jest to możliwe? 3. czy dobrze wykombinowałem z łączenie z bazą danych? czy może ta klasa być dziedziczona przez inne? 4. czy na stronie widoku mogę używać normalnych zmiennych typu $jakas_zmienna ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) zaraz pewnie ktoś napisze ze to co zrobiłem to jeszcze nie prawdziwe OOP, ale to dopiero mój początek z OOP więc proszę o wyrozumiałość oraz wskazówki co mógłbym jeszcze tutaj zastosować (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował terabit 9.07.2008, 18:27:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
Pierwsze co się rzuca to brak oddzielenia kodu od treści.
Powinieneś zastosować returny abyś wiedział co dana funkcja zwraca.
Takie coś jest niezbyt ciekawe. Ja robię to tak przed wywołaniem głównego systemu systemu:
Nie stosuj die a return Filtruj zmienne |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie stosuj die a return Filtruj zmienne A ja powiem nie stosuje return ani die() w tym przypadku tylko Exception, bo przecież nie udane połączenie właśnie jest wyjątkiem, w ten sposób masz zatrzymanie skryptu jeśli ktoś nie obsłuży, ale jak ktoś obsłuży to ma dane co się stało. Dlaczego nie die(), bo przerywa działanie skryptu i nic nie można z tym zrobić, a jednak często chcemy np. wyświetlić odpowiedni komunikat, czy coś innego zrobić. Dlaczego nie return, bo PHP pozwala zignorować to, więc ktoś może nawet nie wiedzieć, że wystąpił błąd a to się okaże dopiero dalej. Dalej, kontrolerów nie dziedziczysz po klasie połączenia, bo to by przypominało jakbyś ty był potomkiem ubrania, trochę głupie co nie? Przekazujesz do kontrolera instancje obiektu bazy. Moim zdaniem zamiast brać się za pisanie własnego MVC, mógł byś chociażby nauczyć się Symfony, przejść manual krok po kroku, nawet nie zaglądając jak to działa, byś zrozumiał jak to powinno działać. Co do pisania w tak ostatnio popularnym skrócie OOP, to masz jeszcze braki w podstawach, więc powinieneś je poprawić, tzn. kiedy się powinno dziedziczyć a kiedy agregować obiekty, dzielenia na odpowiednią funkcjonalność (wywołanie w kontrolerze mysql_query() jest bez sensu, bo po co Ci wtedy klasa bazy danych?, do tego nie wiesz do którego połączenia się odwołujesz) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 09:58 |