[OOP] Goede aanpak?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP 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 »

Ervaren Full stack developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house functie bij een bedrijf met enorme groeipotentie? Ben jij op zoek naar een nieuwe uitdaging vol afwisseling en gezelligheid? Dan ben je bij dit bedrijf aan het juiste adres! Wij zijn in omgeving Breda op zoek naar een ervaren full stack developer. Je gaat werken voor een zeer gewilde werkgever met goede arbeidsvoorwaarden. Je krijgt een plekje in het jonge IT team, work hard, play hard is hier duidelijk het motto! Jouw werkzaamheden zien er als volgt uit: Jij bent verantwoordelijk voor het ontwerpen en bouwen van webapplicaties. Je bent

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Fullstack developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een andere uitdaging? Voor een erkende werkgever in de omgeving van Breda zijn wij op zoek naar een Fullstack developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in

Bekijk vacature »

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

Bekijk vacature »

Senior Product Developer

Functieomschrijving Als senior Product Developer ben je verantwoordelijk voor bestaande mobiliteitsproducten en de ontwikkeling van nieuwe mobiliteitsconcepten. Met behulp van diverse klantonderzoeken, klantsessies en salesmeetings zorg je ervoor dat je de veranderende mobiliteitsbehoeften in de markt kent. Hier speel je op in door innovatieve, flexibele, efficiënte en duurzame vervoersoplossingen te bedenken, te ontwikkelen, te implementeren en uiteindelijk samen met Sales en Marketing collega’s in de markt te zetten. Je initieert en neemt deel aan (internationale en afdeling overschrijdende) projecten, vaak in de rol van projectleider. In die rol bewaak je de voortgang, coördineer je de activiteiten en zorg je voor

Bekijk vacature »

Starter/junior Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als starter/junior developer zul je direct begeleid worden door een senior uit het team. Het is van belang dat

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

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 »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Pagina: « vorige 1 2

30/03/2011 20:58:17
Quote Anchor link
Niels Kieviet op 30/03/2011 18:46:28:
Winkelwagen als object? Wil je dat wel?
(...)


Waarom niet? Je kunt best een winkelwagen hebben, de meest elementaire vorm ervan is dat het een soort van stack is. Dan heb je wel weer iets nodig die die stack afhandelt (iterator).
Bij een database is het inderdaad wel gebruikelijk om een tabel order en een tabel order regel te hebben. De tabel order houd alle orders bij, order regel de items van deze orders.
Gewijzigd op 30/03/2011 21:00:13 door
 
PHP hulp

PHP hulp

23/11/2024 21:17:40
 
Niels K

Niels K

30/03/2011 21:10:44
Quote Anchor link
Quote:
Nee, dat wil ik eigenlijk niet maar je moet wat...

Je kan het nu toch dan snel aanpassen?

Hieronder een 'klein' opzetje gegeven.. Meer tijd heb ik niet, alles berust op hersenspinsel dus er kunnen fouten in zitten :) Succes..

Order item, klant, adres moet je zelf even maken.. (verzinnen)

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php

/**
 * @author Niels Kieviet <[email protected]>
 */

class GsOrder
{
    
    /**
     * (evt) opgetreden foutmeldingen
     */

    protected $errors = array( );
    
    /**
     * Array met order items
     */

    protected $items = array( );
    
    /**
     * Factuuradres
     */

    protected $factuuradres;
    
    /**
     * Afleveradres
     */

    protected $afleveradres;
    
    /**
     * Overige (database) velden, even geen zin om die hier te noteren, dat kan je zelf wel (
     * bij mij doet Zend_Db dat :)
     */
    
    /**
     * Je kan hier nog meer definieren zoals:
     *
     * - Betaalmethode
     * - Verzendmethode
     * - Order kortingen
     * - Factuur
     *
     * noem maar op
     */
    
    
    /**
     * Constructor
     */

    public function __construct( )
    {

        // herberekenen van order
        $this->recalculate( );
    }

    
    /**
     * Order zetten vanuit klant?
     */

    public function setFromCustomer( $customer )
    {

        $this->setFromArray( $customer->get() ); // Of ->getArray / toArray ofzo.
        // Factuur, aflever adres zetten?

        $this->setFactuuradres( $customer->getFactuuradres( ) );
        $this->setAfleveradres( $customer->getAfleveradres( ) );
    }

    
    public function addItem( Orderitem $orderitem )
    {

        if( !isset( $this->items[$orderitem->articlenr] ) ) {
            $this->items[$orderitem->articlenr] = $orderitem;
        }

        else {
            // Ophogen aantal? Of wil je een nieuwe regel?
            $this->items[$orderitem->articlenr]->addCount( 1 ); // Of countPlus, verzin iets :)
        }
    }

    
    public function getItem( $articlenr ) // Aan de hand van articlenr
    {
        return $this->items[$articlenr];
    }

    
    /**
     * Ook nog methodes als getItems, clearItems en noem maar op
     */
    
    /**
     * Methode voor het zetten van variableen vanuit een array
     */

    public function setFromArray( $data )
    {

        foreach( $data as $key => $value ) {
            if( property_exists( $this, $key ) && !is_object( $this->$key ) ) {
                $this->$key = $value;
            }
        }
    }

    
    /**
     * Herbereken van de order
     *
     * - totalen
     * - aantallen (items)
     * - kortingen
     *
     * noem maar op
     */

    public function recalculate( )
    {

        // Succes!
    }
    
    /**
     * Methode voor het opslaan van de order
     */

    public function save( )
    {

        // succes ;)
    }
    
    /**
     * Totaal shizzle
     */

    public function getTotalAmount( )
    {

        $total = 0;
        foreach( $this->getItems as $item ) {
            $total += $item->getAmount( );
        }

        return $total;
    }

    
    // Enzo kan je nog wel wat methoden verzinnen
}

?>


@Karl

Nu gewoon, omdat dit eigenlijk gewoon je order is.. ? Je kan in je controller je order naar de view gooien en in de view gewoon de order items ophalen? Anders is dat toch dubbel?
Gewijzigd op 30/03/2011 21:14:04 door Niels K
 
Bram Boos

Bram Boos

30/03/2011 21:35:25
Quote Anchor link
Dankje Niels, maar.... hoe doe jij het met de query's enzo? Gewoon in de class zelf of een aparte class of hoe..?
 
Niels K

Niels K

30/03/2011 21:38:30
Quote Anchor link
Zoals ik al zei in het commentaar in de klasse maak ik gebruik van Zend_Db_Table_Row. Een row klasse kan worden opgeslagen (denk aan de save functie) en dan wordt door de abstracte Zend_Db_Table_Row klasse een query uitgevoerd die netjes alle waarden opslaat.

google anders even. :)
 

30/03/2011 22:04:34
Quote Anchor link
Niels Kieviet op 30/03/2011 21:10:44:
(...)
@Karl

Nu gewoon, omdat dit eigenlijk gewoon je order is.. ? Je kan in je controller je order naar de view gooien en in de view gewoon de order items ophalen? Anders is dat toch dubbel?


Ik zou daar pas in een later stadium aan toe komen. Mijn winkelwagentje is zoals het fysiek is een ding waarin ik mijn objecten (items / artikelen) kan opslaan.
Als er afgerekend moet worden, dan pas kom je bij een kassa uit o.i.d. Het voorbeeld wat jij hebt gemaakt vind ik eigenlijk niet zo mooi. Ik heb het idee dat je een aantal dingen in elkaar hebt geschoven, die ik persoonlijk uit elkaar zou houden (maar ik ga er niet dieper op in, want daar heb ik geen tijd / zin / fut voor, daarom reageer ik ook steeds met korte dingen).
Bram Boos op 30/03/2011 21:35:25:
Dankje Niels, maar.... hoe doe jij het met de query's enzo? Gewoon in de class zelf of een aparte class of hoe..?

Het netste is natuurlijk dat je gewoon ergens (moet je zelf maar verzinnen) een object in kan douwen. Echt je object. Hopla weg. En dat je het later weer kan opvragen. Hopla daar is het weer. Daarvoor kan je een object database gebruiken, maar die worden niet echt ondersteund, dus dan pak je een orm zoals doctrine die van je mysql database een virtuele object georiënteerde database maakt.
 
Niels K

Niels K

01/04/2011 18:58:37
Quote Anchor link
Waarom vind je mijn voorbeeld niet mooi? Dat zijn toch dingen die specifiek met een order te maken hebben?

En waarom pas in een later stadium?

Wat ik gewoon doe is het volgende: (kort en summier)
In de BaseController maak ik alvast een 'row' aan voor Order en gooi ik hem in de sessie. Zie onderstaand voorbeeld.

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
<?php

class BaseController extends Zend_Controller_Action
{
    public function preDispatch( )
    {

        if(!$this->session->geladen) {
            $this->session->order = new Table_Order()->createRow(); // Create row heeft met Zend Framework DB Table te maken.
            $this->session->geladen = true;
        }
    }


    // Waarden naar de view schrijven
    public function postDispatch( )
    {

        $this->view->order = $this->session->order;
    }
}

?>


En in de view doe ik gewoon

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

foreach($this->order->getItems as $orderitem) {
    // etc
}

?>


Wat is daar fout aan dan?
 

03/04/2011 10:53:00
Quote Anchor link
Niels Kieviet op 01/04/2011 18:58:37:
Waarom vind je mijn voorbeeld niet mooi? Dat zijn toch dingen die specifiek met een order te maken hebben?(...)


In principe moet jij het factuur- en afleveradres al opslaan in je object (in ieder geval dat doe je). Daarnaast sla je ook nog eens een aantal op in het product, dat vind ik ook niet goed. Verder is het zo dat je niet aan een product verschillende eigenschappen kan hangen. Dan zou het bij jou weer een andere instantie moeten worden.
Zoals ik al uitlegde zou ik het veel meer gelijkend doe aan de echte wereld. Het winkelwagentje weet ook niets van de klant af, het weet alleen welke producten het heeft. Maar de aantallen e.d. dat weet het ook niet, want het slaat alleen de producten op. Bij de kassa wordt pas de aantallen en de prijs uitgerekend.
 
Mark Kazemier

Mark Kazemier

03/04/2011 14:11:44
Quote Anchor link
Karl Karl op 03/04/2011 10:53:00:
Niels Kieviet op 01/04/2011 18:58:37:
Waarom vind je mijn voorbeeld niet mooi? Dat zijn toch dingen die specifiek met een order te maken hebben?(...)


In principe moet jij het factuur- en afleveradres al opslaan in je object (in ieder geval dat doe je). Daarnaast sla je ook nog eens een aantal op in het product, dat vind ik ook niet goed. Verder is het zo dat je niet aan een product verschillende eigenschappen kan hangen. Dan zou het bij jou weer een andere instantie moeten worden.
Zoals ik al uitlegde zou ik het veel meer gelijkend doe aan de echte wereld. Het winkelwagentje weet ook niets van de klant af, het weet alleen welke producten het heeft. Maar de aantallen e.d. dat weet het ook niet, want het slaat alleen de producten op. Bij de kassa wordt pas de aantallen en de prijs uitgerekend.


Handige webshop dan, als ik pas bij het afrekenen zie hoe duur het is en kan bepalen hoeveel producten ik wil hebben. En dan wil je afrekenen, weet je niet bij welke klant het winkelwagentje hoort. Ook niet erg handig.

Ik zou het zelf opdelen in product en orderregel. Een orderregel geeft het product en aantal aan. Een winkelwagentje heeft meerdere oderregels en een klant van wie het winkelwagentje is.
 

Pagina: « vorige 1 2



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.