![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 12.10.2010 Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Programuję od jakiegoś roku, ale dopiero od około miesiąca zająłem się OOP i PDO. Mam problem z używaniem atrybutów jednej klasy w drugiej. Konkretniej: klasa users, ma konstruktor iż pobiera z bazy danych na podstawie cookies (jeżeli są) informacje o użytkowniku takie jak login, adres avatara itp i zapisuje je do swoich atrybutów. druga klasa wyświetlająca stronę, nazywa się strona. jest w niej funkcja jak wyświetl_początek() i wyświetla ona kod html z logiem, menu. jest też wyswietl_koniec() gdzie rysowana jest stopka. potrzeba mi użyć w wyświetl_początek() tych pobranych z bazy danych informacji o użytkowniku. jak to rozwiązać? Fragmenty kodu o jakie się rozchodzi:
index.php
Dziękuję za jakąkolwiek pomoc. Pozdrawiam. PS. Ogólnie to dobrze zrobiłem tą obsługę bazy danych? W tym wypadku wykorzystałem static, ale nie chcę tego nadużywać. Ten post edytował Still 12.10.2010, 21:49:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na początek: nie patrz na tym etapie na żadne frameworki. Wzorce również możesz sobie darować bo one nie uczą niczego - pokazują tylko jak rozwiązać pewne popularne problemy: po co Ci rozwiązania problemów, których jeszcze nie masz? (IMG:style_emoticons/default/smile.gif)
1. Tak długo jak to tylko możliwe nie uzależniaj obiektu od danych z zewnątrz (chodzi tu o użycie ciasteczek bezpośrednio w klasie czy konstrukcji typu MySQLDriver::$pdo). To tylko problemy i ogromna utrata elastyczności, w zamian dająca Ci 10 linijek zaoszczędzonego kodu - nie warte. Wymagane zależności (inne obiekty, wymagane do prawidłowego funkcjonowania obiektu: tutaj $pdo) przekaż w konstruktorze, a wymagane dane do działania jakiś metod jako ich argumenty:
2. Unikaj nie potrzebnych klas. Tutaj MySQLDriver nie robi kompletnie nic pożytecznego - po co ona? Utrudnia tylko korzystanie z kodu. 3. Dbaj o obsługę błędów. Takie: Jest nic nie warte. Jedynie utrudnia korzystanie z aplikacji. Takim blokiem catch, który wywala po prostu treść wyjątku można objąć cały skrypt (bo w końcu trzeba zrobić coś z wyjątkami, z którymi nie potrafimy sobie inaczej poradzić). Jeżeli jakiegoś wyjątku nie jesteśmy w stanie obsłużyć - nie robimy tego. Być może jakiś "wyższy" (w hierarchii) blok try {} catch {} będzie w stanie to zrobić. Jeżeli nie to może kolejny. Jeżeli nadal nie, to dotrze to do tego obejmującego całą stronę i wywali się na ekran. 4. Daruj sobie póki co jakiekolwiek klasy do wyświetlania strony. Można takie tworzyć, ale muszą być one naprawdę potężne (pod względem skomplikowania). Używaj póki co typowych szablonów. 5. Popracuj nad nazewnictwem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 19:47 |