Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z programowaniem obiektowym
michaloo
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 15.05.2003
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


Witam
Mam problem. Chciałem napisać serwis www w OO i już nawet zacząłem ale teraz, po dwóch dniach bez pisania, stwierdziłem, że to co wypociłem ma niewiele wspolnego z programowaniem obiektowym. Bo chociaż w klasach są metody, które wykonują różne operacje na bazie, sam nie wiem czemu, stworzyłem pozatym osobne funkcje. (klasy mam takie jak tabele w bazie ale do tych klas napisałem osobne funkcje, które tworzą nowe obiekty i "obsługują" metody).

Przeglądałem ezpublish ale jest on dla mnie za bardzo skomplikowany. Również w mojej "biblii" (książce php i mysql) php nie ma zastosowania klas w wiekszych projektach stron dynamicznych. Szukałem jakiś prostych przykładów w sieci ale nic wartego uwagi nie znalazłem. Może wy macie jakieś swoje próbki czy też inne tego typu bajerki?Byłbym bardzo wdzięczny gdybyście pomogli mi (przedstawiając jakis przykład czy też wyjaśnając) zrozumieć zasady programowania zorientowanego obiektowo.

Pozdrawiam - michaloo[/code]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
michaloo
post
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 15.05.2003
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


witam
niedokladnie o to mi chodzilo ale po przeczytaniu przykladu mariana8 nasunelo mi sie pytanie z tym deklarowaniem zmiennych. Pokaze na przykladzie. Mam plik klasy.php a w nim (kod napisany "na szybko" i napewno ma mase bledow ale narazie nie jest to specialnie wazne):
[php:1:ced0a56767]<?php
class uzytkownik
{
var $id_uzytkownika;
var $pseudonim;
var $imie;
var $email;
var $ranga;
var $recenzje;
var $zapowiedzi;
var $pliki;
var $posty;
var $zdjecia;
var $strona_www;
var $gg;
var $icq;
var $adres;
var $zainteresowania;
var $status;
var $data_ostatniej_wizyty;
var $data_rejestracji;

function wyciagnanie_z_bazy($element, $wartosc)
{
$zapytanie = "SELECT * FROM 'uzytkownicy' WHERE $element = $wartosc";
$dzialanie = @mysql_query($zapytanie);
if(!$dzialanie)
return 0;
$wynik = $dzialaj->fetchRow(DB_FETCHMODE_ASSOC);
if($wynik > 0)
{
$this->id_uzytkownika = $wynik['id_uzytkownika'];
$this->pseudonim = $wynik['pseudonim'];
$this->imie = $wynik['imie'];
$this->email = $wynik['email'];
$this->ranga = $wynik['ranga'];
$this->recenzje = $wynik['recenzje'];
$this->zapowiedzi = $wynik['zapowiedzi'];
$this->pliki = $wynik['pliki'];
$this->posty = $wynik['posty'];
$this->zdjecia = $wynik['zdjecia'];
$this->strona_www = $wynik['strona_www'];
$this->gg = $wynik['gg'];
$this->icq = $wynik['icq'];
$this->adres = $wynik['adres'];
$this->zainteresowania = $wynik['zainteresowania'];
$this->status = $wynik['status'];
$this->data_ostatniej_wizyty = $wynik['data_ostatniej_wizyty'];
$this->data_rejestracji = $wynik['data_rejestracji'];
return 1;
}
else
return blad;
}

function logowanie($pseudonim, $haslo);
{
$zapytanie = "SELECT * FROM 'uzytkownicy' WHERE pseudonim = $pseudonim AND haslo = password($haslo)";
$dzialanie = @mysql_query($zapytanie);
if(!$dzialanie)
return 0;
$wynik = $dzialaj->fetchRow(DB_FETCHMODE_ASSOC);
if($wynik > 0)
{
$this->id_uzytkownika = $wynik['id_uzytkownika'];
$this->pseudonim = $wynik['pseudonim'];
$this->imie = $wynik['imie'];
$this->email = $wynik['email'];
$this->ranga = $wynik['ranga'];
$this->recenzje = $wynik['recenzje'];
$this->zapowiedzi = $wynik['zapowiedzi'];
$this->pliki = $wynik['pliki'];
$this->posty = $wynik['posty'];
$this->zdjecia = $wynik['zdjecia'];
$this->strona_www = $wynik['strona_www'];
$this->gg = $wynik['gg'];
$this->icq = $wynik['icq'];
$this->adres = $wynik['adres'];
$this->zainteresowania = $wynik['zainteresowania'];
$this->status = $wynik['status'];
$this->data_ostatniej_wizyty = $wynik['data_ostatniej_wizyty'];
$this->data_rejestracji = $wynik['data_rejestracji'];
return sukces;
}
else
return 0;
}

function rejestracja($pseudonim, $haslo, $imie, $email, $strona_www, $gg, $icq, $adres, $zaintersowania)
{
$zapytanie = "INSER INTO 'uzytkownicy' VALUES $pseudonim, $haslo, $imie, $email, '0', '0', '0', '0', '0', '0', $strona_www, $gg, $icq, $adres, $zaintersowania, '0', date(d-m-Y), date(d-m-Y)";
$dzialanie = @mysql_query($zapytanie);
if(!$dzialanie)
return 0;
else
return 1;
}

function zmiana_danych($id_uzytkownika, $pseudonim, $haslo, $imie, $email, $strona_www, $gg, $icq, $adres, $zaintersowania)
{
$zapytanie = "UPTADE ($pseudonim, $haslo, $imie, $email, $strona_www, $gg, $icq, $adres, $zaintersowania) FROM 'uzytkownicy' VALUES $pseudonim, $haslo, $imie, $email, $strona_www, $gg, $icq, $adres, $zaintersowania WHERE id_uzytkownika = $id_uzytkownika";
$dzialanie = @mysql_query($zapytanie);
if(!$dzialanie)
return 0;
else
return 1;
}

function usun_uzytkownika($id_uzytkownika)
{
$zapytanie = "DELETE FROM 'uzytkownicy' WHERE id_uzytkownika = $id_uzytkownika LIMIT 1";
$dzialanie = @mysql_query($zapytanie);
if(!$dzialanie)
return 0;
else
return 1;
}


function pokaz_zmienna($zmienna)
return $this->$zmienna;
}
?>[/php:1:ced0a56767]

i mam pytanie czy to deklarowanie (?) var .... ma w tym przypadku sens?
i jeszcze jedna sprawa czy zrobic osobny plik uzytkownicy.php gdzie bedzie wykorzystywana ta klasa?
oraz ostatnie pytanie - czy elementy strony(naglowek, tabele, stopka) tez powinny miec swoja wlasna klase np. class strona ktora mialaby metody odpowiedzialne za wyswietlanie odpowiednich czesci strony np function naglowek($tytul).....blabla; czy dobrze mysle?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 15:06