[OOP] Winkelwagen maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Fullstack developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Senior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »
Milo S

Milo S

25/08/2010 15:27:14
Quote Anchor link
Hallo,

Een tijd geleden heb ik een winkelwagen van phphulp helemaal ge-rebuilt en nu wil ik een winkelwagen leren maken in oop, om zo oop een beetje te leren.
Ik heb de volgende opbouw gemaakt:

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
58
59
60
61
<?php
/*
Class Winkelwagen

--------------------------------------
 | Door Milo van Soest              |
 | Op woensdag 25 augustus 2010     |
 |                                  |
 | Alle rechten zijn voorbehouden.  |
--------------------------------------


Classes (pagina's) van de winkelwagen class.

product.class.php
----------------------
  Product
   - AddProduct
   - EditProduct
   - DeleteProduct

klant.class.php
----------------------
  Klant
   - NewCustomer
   - EditCustomer
   - DeleteCustomer

*/


class Product {
    private $id;
    private $naam;
    protected $kosten;
    private $afbeelding;
    
    # Alle producten ophalen
    function GetProduct () {
    
    return ;
    }

    
    # Product toevoegen
    function AddProduct () {
    
    return ;    
    }

    
    # Product wijzigen
    function EditProduct () {
    
    return ;
    }

    
    # Product verwijderen
    function DeleteProduct () {
        
    return ;
    }
}

?>


Aangezien dit het eerste is wat ik probeer zou ik graag wat hulp willen (ik heb deze: http://phptuts.nl/view/45/6/ handleiding al gelezen maar vind het toch nog erg moeilijk.
Kunnen jullie me tips geven met hoe ik verder zou moeten kunnen gaan en mij vertellen of dit een beetje een goede opbouw is?

Gr, Milo
 
PHP hulp

PHP hulp

24/12/2024 15:08:43
 
Jens V

Jens V

25/08/2010 15:34:44
Quote Anchor link
In feite is je model al direct niet juist.

De naam van een klasse moet effectief voorstellen wat die klasse ook doet.
Je heb een klasse Product met id, naam, prijs, etc etc. Aan een product kan je geen product toevoegen... Je klasse stelt een object voor, het is iets tastbaar. Als je die addProduct wilt kunnen doen, moet je eerst een ProductList maken (of bijhouden in de database).

Enkel editProduct zou deze klasse mogen hebben. En dat eigenlijk nog niet... Eerder iets als set en get functies voor elk van zijn member-variabelen.

Wat deze klasse zou moeten zijn is iets zoals 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
26
27
28
29
30
31
32
33
<?php
class Product {
    private $id;
    private $naam;
    protected $kosten;
    private $afbeelding;
    
    # Alle producten ophalen
    function getId () {
    
    return $id;
    }

    
    # Product toevoegen
    function getNaam() {
    
    return $naam;    
    }

    
    //.....
    # Product wijzigen

    function setId($id) {
    
    $this->id = $id;
    }

    
    # Product verwijderen
    function setNaam($naam) {
        
    $this->naam = $naam;
    }
}

?>

In die ProductList (van daarnet) kan je dan functies addProduct($id, $naam, $prijs /*, etc etc*/), editProduct($huidig_id, $nieuwe_naam, $nieuwe_prijs /*, etc etc*/), en deleteProduct($id); maken. Je ProductLijst is in feite niets meer dan de opslag van deze product-objecten in de database en verzorgt enkel de manipulatie van meerdere van die objecten.

Met vriendelijke groeten,
Jens
Gewijzigd op 25/08/2010 15:37:31 door Jens V
 
Milo S

Milo S

25/08/2010 15:47:52
Quote Anchor link
Okee, hmm lastig hoor :P.

Maar wat je nu doet is de naam en id apart ophalen? ,maar je kan toch ook wel alles ophalen in 1 functie, en dat dan als array returnen of niet?

zoiets:

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
<?php
function getProduct ($id) {
    $qry = "SELECT
                id,
                titel,
                kosten,
                afbeelding
            FROM
                producten
            WHERE
                id = '"
.intval($id)."'";
                
    if($sql = mysqli_query($qry, $conn))
    {

        if(mysqli_num_rows($sql) > 0)
        {

            while($rec = mysqli_fetch_assoc($sql))
            {

                /*
                product
                    id,
                    titel,
                    kosten,
                    afbeelding
                */

                
                $product = array($rec['id'], $rec['titel'], $rec['kosten'], $rec['afbeelding']);    
            }
        }

        else
        {
            $errors[] = 'Er zijn geen producten';    
        }
    }

    else
    {
        $errors[] = 'Fout in de query.';
    }

    
return $product;
}

?>
 
Jens V

Jens V

25/08/2010 16:02:02
Quote Anchor link
Iets in deze aard kan dan kloppen:
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
<?php
function getProduct ($id)
{

    $product = false;
    $qry = "SELECT
                id,
                naam,
                kosten,
                afbeelding
            FROM
                producten
            WHERE
                id = '"
.intval($id)."'";
                
    if($sql = mysqli_query($qry, $conn))
    {

        if(mysqli_num_rows($sql) > 0)
        {

            $rec = mysqli_fetch_assoc($sql);            
            /*
            product
                id,
                titel,
                kosten,
                afbeelding
            */

            
            $product = new Product($rec['id'], $rec['naam'], $rec['kosten'], $rec['afbeelding']);            
        }
    }

    
return $product;
}

?>


Ophalen met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// ....
if($product = getProduct($het_id_uit_een_get_of_db))
{

    // product weergeven
}
else
{
    // product niet gevonden
}
?>


Probeer in je database ook altijd dezelfde benaming als in je klasses te gebruiken... Je had in je db "titel" voor de naam van een product, terwijl je in je klasse daar "naam" hebt. Ook is de naam "kosten" een beetje ongelukkig gekozen. Neem hier eerder "prijs" voor. Als je bij de bakker staat ga je ook niet vragen wat "de kosten" van dat brood zijn, maar wat "de prijs" ervan is (ervan uitgaande dat je dat niet weet;) )

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
<?php
class Product {
    private $id;
    private $naam;
    protected $kosten;
    private $afbeelding;
    
    // constructor toegevoegd
    function __construct($id, $naam, $kosten, $afbeelding) {
       $this->id = $id;
       $this->naam = $naam;
       $this->kosten = $kosten;
       $this->afbeelding = $afbeelding;
    }
    
    function
getId () {
    
    return $id;
    }
    
    function
getNaam() {
    
    return $naam;    
    }

    
    //.....
    function setId($id) {
    
    $this->id = $id;
    }
    
    function
setNaam($naam) {
        
    $this->naam = $naam;
    }
}

?>

Dit laatste is een nieuwe versie van dat van mij van daarjuist. Heb een beetje foute commentaar weggedaan en een constructor toegevoegd. Die wordt in die getProduct functie hierboven aangeroepen door die new Product(.....);

Met vriendelijke groeten,
Jens
Gewijzigd op 25/08/2010 16:27:56 door Jens V
 



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.