[OOP] CRUD method's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

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 »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

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

23/04/2024 11:15:37
 
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.