![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
Jako że OOP od pewnego czasu znam czysto z teori postanowiłem napisać coś co mogłoby mi się przydać. Przerobiłem własny sturkturalny kod stronicowania i teraz prosze was o wszelkie uwagi, rady - konstruktywną krytykę - jak dla laika OOP.
index.php
stronicowanie-class.php
|
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Hmm... Prawdopodobnie ten kod po prostu działa, ale nie jest klasą stronicowania. Wszystko wymieszane (model, widok), wszystko na sztywno "Select from termin", a co jeśli chcę wyciągnąć rekordy z innej tabeli? Nową klasę muszę napisać? To po co mi ta Twoja? Oj (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Cytat Jako że OOP od pewnego czasu znam czysto z teori (...) Nie, nie znasz, nie "zaskoczyłeś" jeszcze. Oczywiście życzę powodzenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) 0/10 Pozdrawiam |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisał Cysiaczek, to funkcje opakowane w class {} (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Obiekt ma być ułatwieniem w pisaniu, ma być jak bardzo elastyczna funkcja. Do czego służy funkcja? Żeby nie pisać kilka razy tego samego. Co do obiektowości, ciężko mi to wytłumaczyć, ale polega ona na tym aby uprościć pisanie użytkownikowi. Przykład dobrego stronnicowania:
|
|
|
![]()
Post
#4
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
dziękuje za opinie, czekam na kolejne.
po raz kolejny zabieram się do przeczytania co to jest OOP. Mam nadzieję że coś już z tego będzie. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
mieszasz polskie i angielskie nazwy ,
pop_nas($naw, $ile) //hę ?
dał byś
i było by fajnie bo inne klasy by mogły skorzystać dla innych tabel (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
A co jak chce stronnicować plik? To nie tak ma działać. Klasa pager ma obliczyć który plik (wiersz) teraz otworzyć oraz wygenerować sam pager. :]
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Zacznij używać skróconych warunków. Pisanie klamer nie we wszystkich sytuacjach jest potrzebne.
Jeżeli includujesz plik tylko raz to użyj funkcji include_once. Całość bardzo kiepska i "sztywna" dla programisty. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 4 Dołączył: 15.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zacznij używać skróconych warunków. Pisanie klamer nie we wszystkich sytuacjach jest potrzebne. Jeżeli includujesz plik tylko raz to użyj funkcji include_once. Całość bardzo kiepska i "sztywna" dla programisty. Tylko, że spadek wydajności przy stosowaniu klamer znikomy i niezauważalny, a czytelność kodu znacznie wzrasta. Co do klasy, to wiadomo, lipton. Poczytaj więcej o OOP, i przepisz swoją klasę, bo jest ona dość prosta w implementacji, więc na początek może być. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
To jest tragedia, czym to się różni od kawałka kodu typu:
który includujesz w miejscu, w którym ma się wyświetlać to stronicowanie i który tak naprawdę nie nadaje się do wykorzystania w żadnym innym miejscu nawet na tej samej stronie? Pomijając już fakt, że potrzebujesz aż dwóch zapytań do bazy i inne szczegóły, ale takiego kodu nie warto nawet analizować. Kiedyś znalazłem na tym forum i usprawniłem taką funkcję: - podajesz liczbę rekordów, porcję rekordów na stronę, wielkość paska i numer bieżącej strony - funkcja zwraca tablicę stron (z oznaczeniem która jest bieżąca, która pierwsza a która ostatnia i we właściwej kolejności), którą możesz teraz opakować HTML'em - tak to ma działać, pisanie kodu, który ma statycznie echować HTML na monitorze jest bez sensu, a wykorzystywanie w tym celu obiektówki jest jak dla mnie absurdalne. Podstawą jest: - wywalenie HTML z kodu - parametryzacja a parametry wprowadzane do klasy z zewnątrz, a nie definiowane wewnątrz niej - operowanie na zmiennych (a nie echowanie co popadnie na ekran) Bo jak sobie wyobrażasz wykorzystanie tego stronicowania? Będę godzinę poprawiał kod HTML i zapytania do bazy, a kiedy już sobie tą "klasę" zaincluduję to zdumiony stwierdzę, że brak zmiennej, którą mogę wyświetlić na stronie a zamiast tego skrypt coś echuje, kiedy ja jeszcze generuję stronę i w efekcie dostanę taki kod: - nie mówiąc już o tym, że kiedy będę chciał przekazać do tej "klasy" jakieś parametry (np. liczbę rekordów) to nie będę mógł, bo już się to na ekranie drukuje i drukuje i nie mogę tego powstrzymać! A jak będzie gdzieś dalej jakiś błąd to co? Każe przeglądarce zwrócić czym prędzej to co wyechowałem i odesłać mi z powrotem? Nie sądzisz, że to się kupy nie trzyma? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 17:35 |