[OOP] CRUD method's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Medior PHP developer

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# 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. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Front-end Developer

Dit ga je doen Het onderhouden, ontwikkelen en testen van front-end software van diverse klant- en medewerkersapplicaties; Het ontwikkelen van maatwerk front-end oplossingen in Vue.js en participeren in een scrumteam; Mede-verantwoordelijk voor het begeleiden en coachen van drie junior front-end developers; Verantwoordelijk voor code-reviews en het opstellen van de juiste documentatie zoals userstories en API ontwerp; Participeren in diverse projecten t.b.v. optimalisatie van diverse applicaties; Het opzetten van API koppelingen met externe applicaties. Hier ga je werken Betreffende organisatie is gevestigd in de regio van Swifterbant en is al ruim 20 jaar lang bedreven in het ontwikkelen en aanbieden van

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

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 »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Pagina: 1 2 volgende »

Milo S

Milo S

07/02/2014 15:38:08
Quote Anchor link
Hallo Allemaal,

Zijn we weer terwijl ik werkelijk geen steek verder gekomen ben. Dat komt hoogstwaarschijnlijk omdat ik blijf denken over hoe ik nu alles het beste kan doen. Bedoel het werkt nu allemaal wel en dat is fijn, maar het is niet zoals ik wil.

Ik zou namelijk mijn data op willen slaan via bijvoorbeeld een UserMapper naar een DatabaseStorage de database in. Het klinkt allemaal romantischer dan het is, vooral het lezen. Voornamelijk omdat je zo ongelovelijk veel functies hebt. Neem bijvoorbeeld gewoon een MySql database, ik wil wel gebruik kunnen maken van een eventuele JOIN of DATE functie binnen SQL. Het schrijven en dergelijke lukt me nog wel om een array van te maken en uit te laten voeren. Ik heb alleen geen enkel idee voor de lees functie.

Wat ik nu gebruik
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
<?php
public function read($table, $columns, $id)
{

    $columns = implode(', ', $columns);
    
    # Query
    $sql = "SELECT ".$columns." FROM ".$table;
    
    # Als er een ID is
    if( $id != NULL )
    {

        $sql .= " WHERE id = '".$id;
    }

    
    # Query Interpreteren en Controleren door Database
    $stmt = $this->db->prepare($sql);
    
    # Query Uitvoeren
    $stmt->execute(array((int) $id));
    
    # Result Opvangen en Retouneren d.m.v populate function
    while ($result = $stmt->fetch(PDO::FETCH_ASSOC))
    {

        $data[] = $result;
    }

    
return $data;
}

?>


Zoals je ziet kan ik dan alleen niet JOINEN. Moet ik het zoeken bij een multidimensionale array? Moet ik meerdere methods gaan maken welke dan bijvoorbeeld de MySql functies representeren? Waar zit jullie gedachte hierbij? Dat laatste haalt alleen ook weer functionaliteit weg lijkt mij?

Vind het lastige keuzes waar ik al tijden mee aan het stoeien ben.
 
PHP hulp

PHP hulp

18/02/2025 23:05:30
 
Erwin H

Erwin H

07/02/2014 16:08:18
Quote Anchor link
Bedenk dat deze ene method nu alweer twee dingen aan het doen is: query maken en query uitvoeren. Trek dat als eerste uit elkaar. De methode (of zelfs class) die de query uitvoert moet op geen enkele wijze aan die query gaan lopen knoeien. Het enige dat die class doet is uitvoeren en resultaten teruggeven.

Vervolgens kan je je afvragen wat het nut is van een algemene class/methode die op basis van algemene instructies een query opbouwt. Uiteindelijk is elke query nog altijd uniek (tot op zekere hogere aangezien je de SELECT * FROM tabel queries alleen bij beginners tegenkomt) en dus zal je linksom of rechtsom ergens in je code die query moeten opbouwen. Wil je dat via allerlei abstracte instructies, of gewoon direct in tekst? Ik heb altijd voor het laatste gekozen, dus gewoon uiteindelijk elke query in een string uitgeschreven in je code. In elk geval kan je altijd elke query bouwen en het maakt het allejezus veel makkelijker om het ook nog eens te testen.
Kies je voor de abstracte querybuilder ga je dan eens alle mogelijke verschillende opties voorstellen. Een klein voorbeeldje:
- aggregate functies
- joins
- joins met meerdere voorwaarden
- subqueries
- virtuele tabellen
- virtuele kolommen
- group concats
- having clause
- group by

Kan het? Ja vast, is je code dan nog leesbaar en is het sneller (wat code bouwen betreft), ik betwijfel het ten zeerste.
 
Wouter J

Wouter J

07/02/2014 16:18:30
Quote Anchor link
Of gebruik bijv. gewoon de Doctrine Query Builder.
 
Milo S

Milo S

07/02/2014 17:14:31
Quote Anchor link
Erwin, dat is inderdaad het probleem waar ik tegenaan loop. De onmogelijk vele mogelijkheden in een querie. Jij zegt dus eigenlijk dat ik mijn usermapper beter een query naar mijn storageclass kan laten sturen om dat resultaat op te halen. Zo houd ik namelijk de taken verdeeld. Maar aan de andere kant kan ik natuurlijk gewoon de query vanuit een string via PDO behandelen.
Ik denk nu even hardop en ga meteen zeggen dat dat weer niet goed is want dat zou betekenen dat bijvoorbeeld een read method 2 taken krijgt, wat dus eigenlijk niet de bedoeling is.

Wouter, ik heb momenteel het gevoel dat ik nog niet toe ben aan al het importeren van soort systemen. Ik ben nog lang niet bekwaam genoeg om ook dat te gaan begrijpen. Althans zo voel ik het.
Gewijzigd op 07/02/2014 17:27:54 door Milo S
 
Wouter J

Wouter J

07/02/2014 17:28:48
Quote Anchor link
Quote:
Ik ben nog lang niet bekwaam genoeg om ook dat te gaan begrijpen. Althans zo voel ik het.

Dan is het tijd van dat gevoel af te stappen. Je bent het wel! :)
Het gebruik van dat soort tools leert je juist hoe dit soort problemen worden opgelost.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/02/2014 21:11:09
Quote Anchor link
Ik denk dat elke query builder de beperkingen heeft die Erwin al aangeeft.
Ze worden ook het vaakst gebruikt door mensen die zelf geen query kunnen uitschrijven, en die komen dan in de problemen wanneer van het abstracte afgeweken moet worden.
 
Dos Moonen

Dos Moonen

07/02/2014 21:47:45
Quote Anchor link
Wouter J op 07/02/2014 17:28:48:
Quote:
Ik ben nog lang niet bekwaam genoeg om ook dat te gaan begrijpen. Althans zo voel ik het.

Dan is het tijd van dat gevoel af te stappen. Je bent het wel! :)
Het gebruik van dat soort tools leert je juist hoe dit soort problemen worden opgelost.

En mogelijk nog belangrijker, je leert door trial and error ook hoe/wanneer je tools niet moet gebruiken. Dat helpt in de toekomst weer de beste tool for the job te kiezen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/02/2014 22:00:11
Quote Anchor link
Oké, maar als iemand mij uit kan leggen wat nu het voordeel is van een query builder....
 
Wouter J

Wouter J

07/02/2014 22:32:41
Quote Anchor link
Ik vind het zelf mooier :)

En de Doctrine qb heeft een oplossing voor het niet alles implementeren van query elementen. Je kan namelijk ook de ->add() functie gebruiken om een custom stukje in de query te stoppen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/02/2014 22:50:45
Quote Anchor link
Een functie gebruiken om een string in een query te plaatsen?
Of tien functies aanroepen om één query te bouwen.
Nog steeds geen voordeel
 
Wouter J

Wouter J

07/02/2014 23:00:01
Quote Anchor link
Iedereen zijn eigen mening Ger...
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/02/2014 23:15:25
Quote Anchor link
Das wel heel erg makkelijk Wouter.
 
Milo S

Milo S

08/02/2014 11:33:13
Quote Anchor link
Als ik het zo lees is het natuurlijk het makkelijkst om te gaan voor wat Erwin al eerder voorstelde. Minder functies voor hetzelfde. Ik kan de query gewoon typen in een string zoals altijd gewend en klaar ermee.

Aan de andere kant wat ik zo zag van die Query Builder vindt ik dat er toch wel chiq uitzien.. Of het praktisch is weet ik zo net nog niet.

Vandaar dat ik het eerst eens gewoon ga proberen zoals Erwin voorstelde. Bij wijs van spreken kan ik altijd nog zeggen dat ik die Dictrine Query Builder wil, het is dan iets meer werk, maar ik heb dan het gevoel alsof het allemaal wat rustiger gaat.

Ik ga nu dus voor een DataMapper en in dit geval een DatabaseStorage. In de DataMapper heb ik mijn query die de resultaten door de DatabaseStorage laat ophalen en die in een array dumpt.

Bedankt voor alle adviezen jongens hier kan ik wat mee in mijn weg naar het onbekende...
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/02/2014 19:41:02
Quote Anchor link
Precies de reden waarom ik geen query builder gebruik:
Doctrine:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// $qb instanceof QueryBuilder

// example8: QueryBuilder port of: "SELECT u FROM User u WHERE u.id = ? OR u.nickname LIKE ? ORDER BY u.surname DESC" using Expr class

$qb->add('select', new Expr\Select(array('u')))
   ->
add('from', new Expr\From('User', 'u'))
   ->
add('where', $qb->expr()->orX(
       $qb->expr()->eq('u.id', '?1'),
       $qb->expr()->like('u.nickname', '?2')
   ))
   ->
add('orderBy', new Expr\OrderBy('u.name', 'ASC'));
?>

Als dit als resultaat de query in het comment oplevert is het tijd om die query builder linea recta naar het ronde archief te verplaatsen.
Gewijzigd op 08/02/2014 19:42:16 door Ger van Steenderen
 
Erwin H

Erwin H

08/02/2014 19:56:41
Quote Anchor link
Milo S op 08/02/2014 11:33:13:
Vandaar dat ik het eerst eens gewoon ga proberen zoals Erwin voorstelde. Bij wijs van spreken kan ik altijd nog zeggen dat ik die Dictrine Query Builder wil, het is dan iets meer werk, maar ik heb dan het gevoel alsof het allemaal wat rustiger gaat.

Even los van hoe het het beste is (meningen zijn verdeeld zoals altijd), als je het goed doet (lees: OOP) dan maakt het uiteindelijk niet zoveel uit. Wat je wil is een class die je kan aanroepen om je de query terug te geven die je nodig hebt. Zolang je die structuur goed opzet kan je er nu voor kiezen om het nog even heel simpel te houden en gewoon in die class alle queries uit te schrijven. Later kan je er een andere class voor in de plaats zetten waarin je bijvoorbeeld wel een query builder gebruikt. Of misschien haal je het dan wel weer uit allerlei include bestanden of....

Nou ja, de kracht van OOP dus. Zorg dat je die structuur goed hebt dan kan je op elk moment nog besluiten om het op de ene of de andere manier te doen.
Gewijzigd op 08/02/2014 19:58:36 door Erwin H
 
Wouter J

Wouter J

08/02/2014 20:15:43
Quote Anchor link
>> Als dit als resultaat de query in het comment oplevert is het tijd om die query builder linea recta naar het ronde archief te verplaatsen.

Of je bent nu aan het extreem aan het overdrijven om een paar overduidelijke documentatie foutjes, of ik begrijp je bericht niet...
Gewijzigd op 08/02/2014 20:21:25 door Wouter J
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/02/2014 20:19:18
Quote Anchor link
Natuurlijk heeft iedereen zijn eigen mening, maar mijn punt blijft.
Als je voor een simpele query als in het voorbeeld van Doctrine, 10 functies moeten worden uitgevoerd om alleen een zeer simpele string te maken ....
Heeft niks met programmeren te maken.
 
Erwin H

Erwin H

08/02/2014 20:21:20
Quote Anchor link
Wat Ger bedoelt is dat het erg veel code is voor een verder erg simpele query. Eigenlijk wat ik ook tegen die builders heb. Het maakt het niet eenvoudiger om een query te bouwen, niet sneller, niet leesbaarder en niet makkelijker om te testen. Als ik die code zie kan ik niet direct zien wat nu eigenlijk de query is en dus, als het misgaat, wat er veranderd moet worden. Bij de eigenlijke query daarintegen is het wel direct te achterhalen.
Gewijzigd op 08/02/2014 20:21:56 door Erwin H
 
Wouter J

Wouter J

08/02/2014 20:23:20
Quote Anchor link
Mja, jullie hebben wel een punt :)

Offtopic:
Eigenlijk ben ik altijd nog erger en gebruik ik gewoon de ODM van doctrine, hoef ik helemaal geen query meer te typen...


Edit:
Gewijzigd op 08/02/2014 20:37:03 door Wouter J
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/02/2014 20:59:01
Quote Anchor link
Heeft mijn sarcasme toch nog effect :-P

Was overigens ook niet bedoelt om doctrine af te kraken, want ik heb alle respect voor hoe het geprogammeerd is.
Ik vind het alleen overkill.
Ik heb in code igniter (active record) alle functies die met een select query te maken hebben eruit gesloopt.
Gewijzigd op 08/02/2014 21:00:50 door Ger van Steenderen
 
Milo S

Milo S

09/02/2014 21:46:39
Quote Anchor link
Wat ik ga doen is als volgt. Ik heb mijn DataMapper. Hierin schrijf ik in de method gewoon de query. Ik roep in die method een method op uit de DatabaseStorage om de query uit te voeren en het resultaat als return mee te geven aan de DataMapper hier kan ik vervolgens de data in door sturen naar daar waar ik het nodig heb.

Klinkt dit als een plan?
 

Pagina: 1 2 volgende »



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.