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
marian8
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 3.12.2003
Skąd: Jelenia Góra

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


Kiedyś napisałem coś takiego - może się przyda...

[php:1:d3c26984b1]<?php
class mojaBaza {

var $sql;

function mojaBaza($baza, $serwer="localhost", $uzytkownik="root", $haslo="") {
$this->sql = mysql_connect ($serwer,$uzytkownik,$haslo);
mysql_select_db($baza);
}

function rozlacz() {
mysql_close($this->sql);
}

function dane_dodaj($tabela) {
$iloscArg = func_num_args();
$zapytanie = "INSERT INTO ".$tabela." VALUES(";
for ($i=1; $i<$iloscArg; $i++) {
$zapytanie .= "'".func_get_arg($i)."'";
if ($i<$iloscArg-1) {
$zapytanie .= ", ";
} else {
$zapytanie .= ")";
}
}
// echo $zapytanie;
if (mysql_query($zapytanie)) {
return 1;
} else {
return 0;
}
// echo mysql_error();
}

function dane_usun($tabela,$warunek) {
$zapytanie = "DELETE FROM ".$tabela." WHERE ".$warunek;
if (mysql_query($zapytanie)) {
return 1;
} else {
return 0;
}
}

function dane_aktualizuj($tabela,$warunek) {
$zapytanie = "SELECT * FROM ".$tabela;
if (!$rezultat = mysql_query($zapytanie)) {
return 0;
}
$iloscPol = mysql_num_fields($rezultat);
$iloscArg = func_num_args();
if ($iloscArg-2 == $iloscPol) {
$zapytanie = "UPDATE ".$tabela." SET ";
for ($i=2; $i<$iloscArg; $i++) {
$zapytanie .= mysql_field_name($rezultat,$i-2)."='".func_get_arg($i)."'";
if ($i<$iloscArg-1) {
$zapytanie .= ",";
}
}
$zapytanie .= " WHERE ".$warunek;
if (mysql_query($zapytanie)) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}

function ilosc_rekordow($tabela,$warunek="") {
if ($warunek=="") {
$where = "";
} else {
$where = " WHERE ".$warunek;
}
$zapytanie = "SELECT * FROM ".$tabela.$where;
$rezultat = mysql_query($zapytanie);
return mysql_num_rows($rezultat);
}

function zapytanie($zapytanie) {
if ($rezultat = mysql_query($zapytanie)) {
return $rezultat;
} else {
return 0;
}
}

}


/* PRZYKŁAD
$baza = new mojaBaza("test");
$baza->dane_dodaj("tab1","przykład","zastosowania","obiektow");
$baza->rozlacz();
*/
?>[/php:1:d3c26984b1]
Może nie wykorzystuje tutaj żadnego polimorfizmu albo innych ciekawostek obiektowych ale parę razy mi się to przydało...
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: 3.10.2025 - 18:07