Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 6.12.2007 Ostrzeżenie: (0%)
|
Napisalem abstrakycjna klase do obslugi bazy mysql
Co o niej sadzicie? Chce na niej bazowac w duzym projekcie i nie chcialbym wtopic Jak robic cachowanie? Nie mam pomyslu...
Ten post edytował Beynar 11.12.2007, 22:59:41 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%)
|
Właściwości powinny być private, używaj metod dostępowych gdzie trzeba. Łączenie z baza to zadanie dla konstruktora (zamykanie polaczenia dla destruktora). Metoda numRows jest zupelnie niepotrzebna, można użyć count() bezpośrednio w kodzie. Sama klasa powinna być Singletonem (albo częścią rejestru). Żadna metoda klasy nie powinna (mam tu na myśli error()) wysyłać nic bezpośrednio na wyjście (echo). Funkcje bazy takie jak INSERT czy UPDATE powinny być zaimplementowane osobno, a nie razem z SELECT bo nie zwracają przecież tablicy wyników! Sama warstwa abstrakcji powinna korzystać ze sterownika bazy danych (osobna klasa) i na podstawie parametrów wybierać odpowiedni (np MYSQL) - wzorzec STRATEGY, FACTORY...
Nazywanie publicznych właściwości od _ jest mylące, ale o w sumie Twoja sprawa. Poza tym i tak dalej w kodzie używasz czystego SQLa. Odczyteywanie _last_id z właściwości klasy jest błędem bo jeśli inny User doda coś do bazy na innej sesji to otrzymujesz błędny wynik! Nie do zmiany bazy danych musisz tworzyć nową instancje! Brak jakichkolwiek zabezpieczeń... Już mi się nie chce dalej, a troche jeszcze tego jest (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Co do cachowania to dość rozległy temat. PS to chyba nie jest abstrakcyjna klasa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował ayeo 12.12.2007, 00:38:13 |
|
|
|
Beynar Abstrakcyjna klasa obslugi bazy danych 11.12.2007, 22:58:31
NuLL Daj sobie na luz i uzyj PDO. 11.12.2007, 23:47:51
Beynar @ayeo ->
"Właściwości powinny być private,... 12.12.2007, 19:32:19
ayeo Cytat"Nazywanie publicznych właściw... 12.12.2007, 23:46:39 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 09:40 |