Przykład źle użytego obiektowego, jaka jest tego przewaga nad zwykłym include czy choćby funkcją? Ja mam taką funkcję:
<?php
function tresc_pasek($l_odp,$l_odp_nastronie,$l_odp_napasku,$a) { //funkcja tworząca paginację, argumenty: liczba rekordów, rekordów na jedną stronę, liczba linków na pasku przez dwa, numer bieżącej strony
$l_odp_podz = intval($l_odp/$l_odp_nastronie)+1; $l_odp_podz_mod = $l_odp%$l_odp_nastronie;
if($l_odp_podz_mod>0){++$l_odp_podz;}
if($a>=$l_odp_podz){$a=$l_odp_podz-1;}
if($a>1){$tablica['prev']=$a-1;}else {$tablica['prev']=0;}
if($a<=$l_odp_napasku){$koniec=$l_odp_napasku*2+2;}else{$koniec=$a+$l_odp_napasku+1;}
if($a<=$koniec-$l_odp_napasku){$star=$a-$l_odp_napasku;}
if($a>=$l_odp_podz-$l_odp_napasku){$star=$l_odp_podz-$l_odp_napasku*2-1;}
if($koniec>$l_odp_podz){$koniec=$l_odp_podz;}
if($star<1){$star=1;}
for($i=$star;$i<$koniec;++$i){
if($i<$a){$tablica[]=$i;}
if($i==$a){$tablica['active'] = $i;}
if($i>$a){$tablica[]=$i;}
}
if($a<$l_odp_podz-1){$tablica['next']=$a+1;}else{$tablica['next']=0;}
return $tablica;
}
?>
- wystarczy nakarmić argumentami a funkcja zwróci tablicę stron gotową do użycia w systemie szablonów (z zaznaczeniem oczywiście poprzedniej, następnej i bieżącej) -
użycie jest prostsze a możliwości większe, że już nie wspomnę o wydajności. Podstawową wadą Twojej klasy jest jak ja to mówię "skryptowość" - elegancka obiektówka tym się różni od skryptu, że wykonuje jakąś pracę zamiast echować fragmenty kodu html - u Ciebie co prawda nie echuje, ale niewielka różnica: zobacz, co trzeba zrobić, by tego użyć na swojej stronie - trzeba na dzień dobry dostosować kod HTML i źrodło zmiennych, który jest dodatkowo rozpiżony po całej klasie - pozwól też użytkownikowi decydować w jaki sposób ma przekazywać parametry, w jakim celu ta klasa ma ingerować w zapytanie do bazy, jak nie wiadomo co chce użytkownik wyświetlić i skąd - a jak będzie chciał porcjować pliki z folderu, tekst na strony albo dane z pliku? A jak chcę wysłać numer strony postem, ajaxem lub zapisać w sesji/pliku/ciastku? Stronicowanie to ma dzielić na strony a nie dorabiać do tego całą "otoczkę".