![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
miałem kilku letnią przerwę w php i teraz, kiedy znowu mnie wciągnęło, za żadne skarby nie potrafię ogarnąć obiektówki (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) . Chciałbym, żebyście sprawdzili tą klasę i w ogóle naprowadzili mnie na dobrą drogę, czy tak powinno się używać OOP. Jako że uczyłem się strukturalnie to teraz trudno mi się odzwyczaić (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) . Jest to prosty kodzik, który ma wyświetlać plik, który mu zapodam. Pisałem to pod malutki homepage, więc użyłem go do wyświetlania podstron. A więc:
Tak więc, jest to poprawne użycie obiektówki, czy taki kod mija się z celem? Bo ja już sam nie wiem, może kiedyś to pojmę (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Z góry dzięki, pozdrawiam. Ten post edytował margyw 28.06.2009, 23:56:46 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Sama idea w miarę ok.
ALE:
A file_get_contents" title="Zobacz w manualu PHP" target="_manual? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
A po co? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) return" title="Zobacz w manualu PHP" target="_manual + funkcja, tyle. [; |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej tak? (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)
Ten post edytował margyw 29.06.2009, 00:25:50 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
bede sie czepiac. tyci (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
ja bym zrobil te klase jak wyzej.... w twoim przykladzie jest taka linijka... :
wytlumacz mi jak ma to zadzialac, skoro loadPage, w twoim przykladzie zrwaca string? to pierwsza uwaga. 2. staraj sie nie uzywac @, skoro bierzesz pod uwage error - oprogramuj go. 3. skoro w konstruktorze na sztywno ustawiasz konkretny plik, to po co leniwie zaczytujesz jego tresc... ? na upartego da sie, ale mam spore wawtpliwosci, wobec takiego rozwiazania. Ten post edytował alegorn 29.06.2009, 09:04:19 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat wytlumacz mi jak ma to zadzialac, skoro loadPage, w twoim przykladzie zrwaca string? A no tak, że nie czytałeś dokumentacji
i odrób pracę domową. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
A no tak, że nie czytałeś dokumentacji
i odrób pracę domową. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) praca domowa odrobiona... bardziej chodzi o zle doswiadczenia z takim slabym porownaniem... po pierwsze nie kontrolujesz gdzie wystepuje blad. a i o takiej konwersji mozna by wiele gadac, bo o ile: var_dump((bool) "false"); // bool(true) tak już: var_dump((bool) "0"); // bool(false) o ile mozna by sie zastanawiac nad przydatnoscia ponizszego dla tej klasy:: var_dump((bool) ""); // bool(false) tak var_dump((bool) "0"); // bool(false) moze wygenerowac blizej nie zidentyfikowany blad.. przy wczesniejszych zalozeniach kazde prawidlowe zrodlo tresci, (w tym przypadku plik, ale to nie istotne) nie moze byc pusty lub... nie moze zawierac tylko '0', kiepskie, jak dla mnie przynajmniej.. |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No tak, ale popatrz, że w kontekście tego skryptu jest to sprawdzenie, czy plik istnieje po najmniejszej linii oporu.
Umożliwia sprawdzenie, czy występują faktycznie jakieś dane, bo ani pusty plik, ani zero jako zawartość nie będą przydatne. Nie pochwalam czegoś takiego, bo jest file_exists" title="Zobacz w manualu PHP" target="_manual, ale jeśli chodzi o logikę działania - rozwiązanie prawidłowe. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
owszem masz w pewnym sensie racje, ale ja nadal twierdze ze to rozwiazanie generuje blizej nie zidentyfikowane bledy, i jako takie jest zlym rozwiazaniem...
to czy plik istnieje - zwraca nam przeciez file_get_contents... jesli nie znajdziemy pliku, zwraca false wiec dalsze sprawdzanie tresci jest dyskusjne.. bo w takim razie nalezalo by wyciac biale znaki, pojednyncze znaki, etc. zdecydowanie ta funkcja nie dziala zgodnie z oczekiwaniami, wiec dziala nie prawidlowo :] jasne ze to tylko przyklad, szkic, ale tym bardziej nie jest polecane szkicowac funkcje ktora dziala nie do konca z zalozeniami, a przeciez zalozeniem jest wyswietlenie tresci pliku, nie istotne jaka ona jest. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat jesli nie znajdziemy pliku, zwraca false wiec dalsze sprawdzanie tresci jest dyskusjne.. bo w takim razie nalezalo by wyciac biale znaki, pojednyncze znaki, etc. I przy okazji sypiąc notice. A przecież wszystkim chyba zależy, aby dążyć do kodu sprawnie działającym nawet na raportowaniu E_STRICT? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
:] no fakt, masz tutaj zupelna racje, (wywala Warning ) ale i tak bede uparty, bo nie uwazam ze w wczesniejszym rozwiazaniu '@' jest rozwiazaniem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ...
oczywiscie ze trzeba uzyc file_exists" title="Zobacz w manualu PHP" target="_manual o czym napisales wczesniej. oba rozwiazania sa raczej szkicem, ale i tak uwazam ze moje po uszczelnieniu bedzie dzialac zgodnie z zalozeniami - a to wczesniejsze - tak nie do konca. :] choc to juz po trosze rozwazania teoretyczne, w praktyce, przy wyswietlaniu pelniejszej tresci - tez bedzie dzialac. noo... ale skoro mielismy wskazywac te dobre rozwiazania.... (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 26.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze mnie nurtuje pewna rzecz, a mianowicie podstrony.
Czy sposób, który pokazałem wyżej, tzn.
jest poprawny, czy istnieje jakaś inna forma, którą wykorzystujecie pisząc obiektywnie? Przypuśćmy, że robiłbym PA, i np. miałbym klasę z funkcjami:
to wtedy poprawne, według zasad obiektowości, będzie wykorzystanie jej jak w w/w przykładzie?:
Nie zwracajcie zbytnio uwagi na kod, można by również wykorzystać switch'a, ale nie o to chodzi, tylko o sam fakt, czy tak jest poprawnie wg, zasad OOP. W ogóle przepraszam za tak banalne pytania, ale jakoś zagadnienie OOP nie może do mnie trafić i nie potrafię tego pogodzić z tym co już umiem. Wydaje mi się, że za dużo strukturalności wtrącam w kod i dlatego przestaje to być stricte obiektowym kodem. Nie wiem już sam (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) . Ten post edytował margyw 30.06.2009, 00:01:07 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
mniej wiecej.
w zasadzie, programowanie obiektowe daje rezultaty przy wiekszych projektach, przy malych skryptach, tak naprawde jest to zabawa pro forma. choc jest oczywiscie dobra wprawka.. zabawa zaczyna sie dopiero jak robisz interfejsy, abstrakty, itp (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale lekko korygujac :
i teraz uzycie
aa, switch jest rzeczywiscie lepszy, w sensie znacznie wydajniejszy, pozwala sporo czasu zaoszczedzic. |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat obiektywnie? Chyba obiektowo, bo obiektywna może być co najwyżej opinia (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Cytat W ogóle przepraszam za tak banalne pytania, ale jakoś zagadnienie OOP nie może do mnie trafić i nie potrafię tego pogodzić z tym co już umiem. A czemu nie możesz utworzyć nowej instancji strony w stronie? Czyli podzielić na bloki, coś w ten deseń. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 12:46 |