![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Uczę się PHP i postanowiłem napisać CMSa.. Już mam dodawanie/edytowanie podstron, menu. Mój CMS wszystko sobie zapisuje w bazie MySql. Wyczytałem, że lepszym sposobem programowanie jest programowanie obiektowe. Tylko właśnie nie do końca wiem czy lepiej pisać to obiektowo czy nie... i to jest moje pytanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Np. w PANELU ADMINA w dziale PODSTRONY mam to zrobione tak: *zapytanie:
*za pomocą: wyświetlam wszystko w tabeli, USER może sobie zaznaczyć kilka PODSTRON i kliknąć USUŃ. DOKUMENT SIE PRZELADOWUJE I MAM W ZMIENNYCH POST/GET NUMERY ID PODSTRON DO USUNIECIA *zapytanie: usuwa podstronę A jeżeli dobrze zrozumiałem to obiektowo musiałoby to wyglądać jakoś tak: tworze sobie klasę, w niej zmienne private $id,$status,$nazwa,$data_utworzenia,$data_edycji,$autor. Jako obiekty ładuje do klasy wszystko z MySql - każda podstrona to jeden obiekt. hmm tworze sobie funkcję w klasie która mi będzie wyświetlać tak jak wczesniej po kolei dane... USER zaznacza kilka do usuniecia i teraz zeby usunac dane funkcją np. UsunDane() (ktorą sobie stworze w klasie) to musze najpierw wczytac dane obiekty i potem wywolac fukncje UsunDane().. A normalnie po prostu usuwam obiekty o danym ID bez wczytywania ich. wiec wychodzi dłużej ;/ Czyli obiektowo czy nie? Moze ja nie rozumiem obiektowoście po prostu jeszcze, moze to sie roi inaczej?? Ten post edytował marekc12 1.08.2008, 14:56:24 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@marekc12
Widzisz użyte mysql_fetch_row(), a tego nie powinno być poza obiektem. Wydaje mi się, że powinieneś mieć dwie metody, jedna do "INSERT, UPDATE, REPLACE, DELETE" druga do "SELECT, SHOW", dlaczego rozdzielić? Bo inaczej się je obsługuje, w pierwszej możesz zwracać mysql_affected_rows() czy mysql_insert_id(), a w drugiej właśnie wykonać w pętli mysql_fetch_assoc() i zwrócić już tylko tablicę. Rób tak aby zamknąć wszystkie funkcje mysql_*() w tej klasie, abyś w czasie korzystania z niej, nie miał potrzeby ich używania, a jak to zrobić, staraj się jak najwygodniej dla siebie. Chwilę poużywasz, a zapewne wpadniesz na pomysł jak to zrobić lepiej. hmmm ale to w ogólnie nie wykorzystuje obiektowości.... myślałem, że to się robi jakoś inaczej, ;p No to w sumie tak jak po staremu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Spokojnie, napiszesz jeden obiekt, potem będziesz mógł dalej rozszerzać. Pamiętaj aby utrzymać tę klasę jak najprostszą, potem możesz napisać co korzysta z niej i rozszerza jej możliwości. Np. zrobić metodę update() której przekazujesz id,nazwę tabeli i array( 'pole' => 'wartość' ) a ona sama tworzy SQL i robi update. Na początku zaczyna się od banalnie prostych rzeczy, potem się wchodzi w trudniejsze, tu ważne jest zrozumienie. Dlatego proponowałem, abyś skorzystał z Propel, bo najpierw byś poużywał, zobaczył jak to działa, a potem mógł zerknąć w kod i zobaczyć jak to zrobili. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 04:31 |