![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 11.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Napisalem pierwszą klasę w swoim życiu ![]() Jej zadaniem jest listowanie zawartosci katalogu i przekazywanie zawartosci do szablonów Smarty, ale tutaj jest nieco przerobiona wersja. Problem polega na tym, że jak wylistuję sobie katalog './' i wejdę w jakiś folder to adres w pasku przeglądarki powinien wyglądać tak "index.php?katalog=./folder/" i tak wygląda, ale jak otworzę katalog, który znajduje się w katalogu 'folder', to adres wygląda tak "index.php?katalog=./to coś z katalogu folder" i wywala błąd, bo taki plik nie istnieje (powinno być "index.php?katalog=./folder/to coś") ps. proszę o ogólne uwagi / zalecenia co do tej klasy, gdyż jak wspomnialem, jest to mój pierwszy kod OOP. Pozdrawiam :-)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mi jako początkujecemu programiscie oop rzuca sie w oczy tylko jedna sprawa czemu uzywasz "var" zamista public, proceted, private
![]() -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podstawowe błędy, które się rzucają w oczy:
- jak kolega wspomnial, nie wykorzystujesz mozliwosci PHP5, klasa jest wyraznie napisana na PHP4, od ktorego sie juz odchodzi. - w przypadku bledu skrypt jest przerywany, a powinien byc zwracany blad/wyjatek. - metody i zmienne nazywasz po polsku, a skrypty powinno sie pisac po angielsku ![]() btw. trochę niekonsekwentnie wyglada wykorzystanie tej klasy, przy warunku is_dir() do dajesz slash (/) a przy echo już nie. -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
1. Nazwa listing nie odzwierciedla tego, co robi klasa.
2. Najpierw przekazujesz parametr do funkcji, a potem używasz tablicy $_GET do jego odczytania - bez sensu 3. Ten sam parametr zaburza hermetyzację 4. Używasz polskich nazw dla zmiennych - w połączeniu z angielskimi nazwami metoda jest to jakieś esperanto - używaj tylko angielskich nazw. 5. To co już zostało powiedziane wyżej - zgodność z PHP 4 - php 4 już nie ma 6. Zajrzyj na http://www.php.net/~helly/php/ext/spl/ i zobacz DirectoryIterator oraz RecursiveDirectoryIterator - są wbudowane w php i robią to, co Twoja klasa. Pozdrawiam ![]() -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 135 Pomógł: 38 Dołączył: 24.02.2007 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
- w przypadku bledu skrypt jest przerywany, a powinien byc zwracany blad/wyjatek. Mam pytanie, jak powinno to wyglądać? Try, catch? Takie komunikaty o błędach w die nie wystarczą? Można prosić o krótki przykład? Czy chodzi o to, by metody zwracały zawsze wartość (return)? Pozdrawiam. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
->po co zadeklarowałeś zmienną foldery skoro jej nie używasz?
->no i jak już wyżej było nie powinno się używać tablic globalnych ($_GET, $_POST) w klasach po to są parametry w metodach -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 21 Dołączył: 1.09.2006 Skąd: Edinburgh Ostrzeżenie: (0%) ![]() ![]() |
W sumie, to ta klasa jest niezbyt przydatna... Sa przeciez Iteratory...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie, jak powinno to wyglądać? Try, catch? Takie komunikaty o błędach w die nie wystarczą? Można prosić o krótki przykład? Czy chodzi o to, by metody zwracały zawsze wartość (return)? Pozdrawiam. Nie stosuje się die() w OOP - po to masz wyjątki. Łapiesz wyjątek i możesz go obsłużyć albo nie. Dla mnie wyjątek to coś krytycznego. Jeśli się zdarzy to zapisuje w logach a user widzi na ekranie komunikat błędu. Poczytaj http://blog.whisnet.pl/tag/php5 pzdr Ten post edytował Jarod 25.03.2008, 17:36:01 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 12 Dołączył: 27.01.2007 Skąd: north Poziom: 158 Tytuł: Miszcz Ostrzeżenie: (0%) ![]() ![]() |
Trzy grosze odemnie. W PHP5 mamy scandir(), co ułatwia znacznie życie (lepsza tablica niż obiekt w tym przypadku).
-------------------- Blog | plugin system by carbolymer
Residence: #php.pl @ IRCNet "Pralki powstały po to, aby kobiety też mogły programować" |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 11.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
hmm... no cóż... dzięki za wszystkie uwagi / wskazówki, na przyszłość będę wiedział, póki co - biorę się za poprawienie tego
![]() Jak wiadomo - zawsze początki bywają ciężkie ![]() Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 19:15 |