/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP OOP, igen
Fra : Stig Sørensen


Dato : 07-06-09 12:32

Hej.

Fik tid til at lege lidt med PHP OOP igen, denne gang på egen hånd,
helt forfra.
Vil egentligt bare have lidt input op hvorvidt jeg har forstået the
basics:

http://pastebin.com/m56987d68

- Jeg ved godt at der kan laves en error funktion der logger
hændelserne i stedet for at vise det til brugeren, men alt i alt, er
det på rette vej?

Det skal lige siges at jeg egentligt ikke har behov for at dele
classene op således at det kan genbruges til mysqli etc, da det er kun
til egen forbrug, og det er pt. MySQL.

Men gode råd modtages i hvertfald.


 
 
Stig Sørensen (07-06-2009)
Kommentar
Fra : Stig Sørensen


Dato : 07-06-09 12:36

Sjovt når man lige får set det lidt på afstand opdager man pludselige
'småfejl'.

Her er en ny: http://pastebin.com/m2c18f652

Martin (08-06-2009)
Kommentar
Fra : Martin


Dato : 08-06-09 17:45

Stig Sørensen wrote:
> Sjovt når man lige får set det lidt på afstand opdager man pludselige
> 'småfejl'.
>
> Her er en ny: http://pastebin.com/m2c18f652

Lav et interface som mysql klassen extender, i din interface ville jeg lave

public function fetch_assoc();
public function query();

Desuden ville jeg også lave en abstract klasse, i denne ville jeg have
følgende

protected $db_link = null;

abstract public function __construct($db_host, $db_user, $db_pass);

Problemet som jeg ser det, er at du faktisk ikke kan bruge db klassen
til en dyt, "meningen" er at du skal kunne bruge db klassen til alle
forskellige typer database klasser (altså både mysql, postgresql, mssql
osv.)

Desuden ville jeg lave i din db contruct noget ala

public function __construct(
$db_type,
$db_host,
$db_user,
$db_pass
) {
$db = new {$db_type}($db_host, $db_user, $db_pass);
}

Altså noget ala
http://pastebin.com/f71b4197b

Nu kan du sådan set bare klassen MYSQL ud med MSSQL eller PGSQL eller
lign. også kun tilføje de 3 funktioner

Martin (10-06-2009)
Kommentar
Fra : Martin


Dato : 10-06-09 12:08

Martin wrote:
> Altså noget ala
> http://pastebin.com/f71b4197b

Tjaa, fik lige smidt implements på mysql klassen, den skulle
selvfølgelig være på den abstrakte klasse - og så skal interfaces
åbenbart stå øverst i en fil, hvis man skal copy/paste det så det virker..

http://pastebin.com/ff324122


>
> Nu kan du sådan set bare klassen MYSQL ud med MSSQL eller PGSQL eller
> lign. også kun tilføje de 3 funktioner

Dan Storm (07-06-2009)
Kommentar
Fra : Dan Storm


Dato : 07-06-09 22:16

Stig Sørensen skrev:
> Vil egentligt bare have lidt input op hvorvidt jeg har forstået the
> basics:

Er der noget du er i tvivl om da? For så er det med at få spurgt.

> - Jeg ved godt at der kan laves en error funktion der logger
> hændelserne i stedet for at vise det til brugeren, men alt i alt, er
> det på rette vej?

Det kommer an på hvad det er du gerne vil opnå. Prøv at definere
formålet med objektet.

>
> Det skal lige siges at jeg egentligt ikke har behov for at dele
> classene op således at det kan genbruges til mysqli etc, da det er kun
> til egen forbrug, og det er pt. MySQL.

Som udgangspunkt går du den forkerte vej så.

Det ville være bedre at have to objekter med fuldstændig ens public
funktioner til at opnå det du efterlyser.

>
> Men gode råd modtages i hvertfald.
>


Stig Sørensen skrev:
>> Her er en ny: http://pastebin.com/m2c18f652


Jeg savner en måde at angive hvilke oplysninger jeg gerne vil forbinde
med? Eventuelt i __construct()?

Din private erklærede $table variabel er ikke i brug? Det er $safe_data
eller $data heller ikke.

Som du selv er inde på ville en handler til dine sql fejl være rart.

Jeg mangler mulighed for at se mit sidste auto increment id, hvor mange
rows jeg har opdateret eller slettet.

Det var lige umiddelbart mine tanker - men det er altså nemmere at komme
med forslag, kritik eller spørgsmål til din gøren, når vi ved hvad du
gerne vil opnå.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409075
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste