![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Piszę pierwszy raz na tym forum wiec proszę o wyrozumiałość. Od nie dawna uczę się PHP a tym bardziej programowania obiektowego więc będę robił dużo błędów wiec proszę o poprawianie mnie. Stworzyłem klasę CDB w której jest łączenie się z bazą danych. Wywoływana jest w konstruktorze. Następnie stworzyłem klasę w odzielnym pliku do obsługi błędów(Głównie wyświetlanie oraz zapis logów do pliku). W pliku engine.inc.php są zapisane hasła do łączenia się z bazą danych. Tutaj klasa CDB.
Wywoływując tą klasę musimy podać ścieżkę gdzie znajduje się plik konfiguracyjny engine.inc.php. Klasa CErrors:
Plik engine.inc.php
Plik index.php
Pytanie takie:
Dziękuję za jakiekolwiek opinie i rady. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Pisz, pisz, nabierzesz praktyki, będziesz więcej rozumiał i sam widział czy jest dobrze.
Jeśli chcesz uniknać tak głębokich wcięć rób warunki na 'nie' czyli np: if (nieUdaloSie) return; , a nie jak masz obecnie: if (ok) { // if ... // } Duzo lepiej czyta się kod jeśli jest 'smukły'. Oczywiście masz kilka błędów, które sam napewno wyłapiesz, np skąd sie bierze $mysql_data? Ucz się najpierw projektwać. Odejdź od komputera i na kartce ołówkiem zaprojektuj klasy, metody i zalezności. Prześledź możliwe przypadki - czy moje rozwiązanie poprawnie działa dla każdego. Dopiero teraz przechodź do implementacji. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Taka rada praktyczna właśnie ad. projektowania, a właściwie to trzy rady:
1. Pojedyncza klasa powinna być odpowiedzialna tylko za jedną rzecz - fachowo nazywa się to zasadą jednej odpowiedzialności. Innymi słowy, nie twórz szwajcarskich scyzoryków, które jednocześnie piorą, frezują, gotują obiad i jeszcze obsługują błędy, bo to ma niewiele wspólnego z projektowaniem obiektowym. 2. Do obsługi błędów masz coś takiego, jak mechanizm wyjątków... ![]() 3. Nazewnictwo klas w stylu CDupa jest kompletnie bez sensu i do d... gdyż z biegiem czasu będziesz miał coraz większe trudności z ich integracją. W projektach PHP już od jakiegoś czasu wdrażany jest zunifikowany standard nazewnictwa klas i naprawdę polecam się z nim zapoznać, gdyż niesamowicie ułatwi Ci on życie. Wprowadzenie do niego masz tutaj: http://pl.wikibooks.org/wiki/PHP/Automatyc...azewnictwa_klas -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedzi:
Ale chodziło mi o myślenie, czy opłaca się robić połączenie do mysql w konstruktorze? Czy taka klasa z obsługą błędów nadaje się(bo ona dodatkowo zapisuje logi do pliku, mogła by również coś jeszcze robić jeśli chodzi o błędy). Bo zwykłe łączenie do bazy to wystarczy kilka linijek kodu i śmiga. magiczny_piesek To $mysql_data to tablica która się znajduje w pliku engine.inc.php i w niej zawarte są dane do połączenia się z bazą. Czy macie jakieś inne pomysły do zabezpieczenia danych, które znajdują się w pliku .php tak jak tutaj jest, zwykły użytkownik tego nie odczyta ale może są jakieś sposoby które hakerzy znają? Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:28 |