[OOP] User class (Beginner)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Milo S

Milo S

27/08/2010 12:54:15
Quote Anchor link
Hallo allemaal!

Ik weet het ik heb laatst een topic gestart over winkelwagen in oop, maar ik zat me net te bedenken dat ik natuurlijk veel beter iets kan gaan maken waar ik later veel meer aan heb. Een user class dus.

Nu denk ik iets simpels gedaan te hebben maar vraag ik me eigenlijk af wat ik er nu mee kan doen?

Dit is wat ik heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
# Database connectie maken
include('Config.php');

class User
{
    # Nodige veriabelen
    private $userid;

    # Constructor, deze word bij aanvragen class automatisch opgeroepen.
    function __construct($userid)
    {

        $qry = "SELECT
                    id,
                    naam,
                    avatar,
                    status
                FROM
                    gebruikers
                WHERE
                    id = '"
.mysqli_real_escape_string($conn, $userid)."'";
                    
        # Query Checken & Uitvoeren
        if($sql = mysqli_query($conn, $qry))
        {

            if(mysqli_num_rows($sql) > 0)
            {

                # Variabelen zetten.
                $rec = mysql_fetch_assoc($sql);
                
                $this->username   = $rec['naam'];
                $this->useravatar = $rec['avatar'];
                $this->userstatus = $rec['status'];
            }
        }
    }

    
    # Gebruikersnaam ophalen
    public function GetUserName()
    {

        return $this->username;    
    }

    
    
    # Avatar ophalen
    public function GetUserAvatar()
    {

        return $this->useravatar;    
    }

    
    # Gebruikersstatus ophalen
    protected function GetUserStatus()
    {

        return $this->userstatus;    
    }
}

?>
Gewijzigd op 27/08/2010 13:13:46 door Milo S
 
PHP hulp

PHP hulp

05/11/2024 09:27:08
 
Niels K

Niels K

27/08/2010 14:37:55
Quote Anchor link
Hoi Milo,

Allereerst wat me opvalt:

- Geen PHPDoc
- Het includen van een pagina zou ik in de Index pagina doen, dit omdat je anders het overzicht kwijt raakt.
- Query:
Om de Query te laten uitvoeren zou ik een andere klassen maken. Je krijgt bijvoorbeeld dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

public function __construct( $user_id )
{

    $this->user_id = $user_id;
}


/**
 *  Haalt alle userinformatie uit de database
 *
 *  @param Database $database
 */

public function getUser ( Database $database )
{

    $query =
    "
        SELECT
            ....    
    "
;
    $database->query( $query );
    
    // En ga verder
}

?>


Verder zou ik voor Avatar een nieuwe klasse aanmaken. Ook zou ik nog even kijken naar database normalisatie.

Je zou een aparte tabel voor een avatar moeten hebben denk ik zo.

Verder zou ik even wachten op reactie van de wat meer gevorderde want ik kan het ook mis hebben..
Gewijzigd op 27/08/2010 14:40:11 door Niels K
 
Milo S

Milo S

27/08/2010 15:22:22
Quote Anchor link
Hey Niels!
Bedankt voor de tips!

Over de aparte tabel avatar, dit zou ik niet doen want het is 1 regel waar alleen maar een image naam instaat... Zoals onze afbeelding hier in het forum.

Maar dan heb ik nog niet echt antwoord op m'n vraag.. Wat kan ik nu makkelijker dan dat ik anders kan doen... Sorry als mijn vraag niet goed naar voren kwam.
 
Niels K

Niels K

27/08/2010 15:28:10
Quote Anchor link
Geen dank allereerst,

"Over de aparte tabel avatar, dit zou ik niet doen want het is 1 regel waar alleen maar een image naam instaat... Zoals onze afbeelding hier in het forum"

Ok, moet je zelf weten, maar ik legde het verband met de normalisatie van de database. Dat zou dus een aparte query worden.

"Maar dan heb ik nog niet echt antwoord op m'n vraag.."

Niet veel bijzonders dacht ik zo. Je kan beter een authenticatie class maken en daaruit opbouwen, Voorbeeldje van een lijstje hoe je het kan doen:

- Database
- Register
- Authenticatie
- Profile
- User

Etc.. Verder: Weet je hoe je een class aanroept en dergelijke?
Gewijzigd op 27/08/2010 15:28:49 door Niels K
 
Milo S

Milo S

27/08/2010 15:59:09
Quote Anchor link
Mmm nee ik heb totaal geen idee, ik ben heel nieuw in OOP heb paar keer de oop beginners handleidingen doorgelezen, maar raak er nog niet echt wijs uit daarom dacht ik laat ik het eens proberen.
 
Pim -

Pim -

27/08/2010 17:10:36
Quote Anchor link
Je moet even twee dingen in je hoofd scheiden:
- De interactie tussen je modellen, dus de user die een bericht post e.d.
- De interactie tussen de database en je modellen, dus het opslaan van het model 'gastenboek' of het zoeken van user met id=6 oid.

Voor de eerste heb je helemaal geen SQL oid nodig. De tweede implementeer je met een save() functie en statische zoekfuncties (User::getUserById($id) of User::getUserByEmail($email) ).
 
Niels K

Niels K

27/08/2010 20:36:43
Quote Anchor link
"Mmm nee ik heb totaal geen idee, ik ben heel nieuw in OOP heb paar keer de oop beginners handleidingen doorgelezen, maar raak er nog niet echt wijs uit daarom dacht ik laat ik het eens proberen."

Een class is heel simpel aan te roepen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$instance
= new Class( );

?>


Verder tja, als het aanroepen was een class al moeite geeft, zou ik als ik jouw was nog even een paar tutorials volgen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.