[OOP] CRUD method's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP / Symfony ontwikkelaar

Senior PHP developer gezocht in Rotterdam! Bij deze jonge e-commerce organisatie ga je werken aan een aantal gave projecten voor grote klanten binnen onder andere de telecom en de finance sector. Wil jij een open, ambitieuze en gezellige organisatie waar je jouw ervaring kan toepassen op een complex niveau? Reageer dan direct! Deze jonge organisatie is binnen 10 jaar gegroeid naar 50 werknemers. Ze ontwikkelen maatwerk oplossingen voor hun diverse klantenportfolio, niet zomaar een webshopje maar een totaal oplossing op IT gebied. Met eigen initiatief kom je in deze organisatie heel ver, van nieuwe functies tot projecten verzinnen. Veel kan,

Bekijk vacature »

Fullstack .NET Programmeur

Organisatie Het bedrijf is namelijk gevestigd in het centrum van Den Haag, op loopafstand van het centraal station. Ze zitten een groot kantoorpand met een moderne en strakke inrichting van binnen. Het bedrijf is een van grootste creatieve bureaus van Nederland. Je word daarom door je klanten ook echt als partner gezien! Er word dan ook verwacht dat jij mee kunt denken over complexe problemen en je partners hierin adviseert. Jij gaat dus op projectbasis, 6 tot 12 maanden per klus, samen werken met je SCRUM-team. Dit betekent niet dat je altijd bij de klant zit. Nee hoor, je zit

Bekijk vacature »

(Junior) C#. NET Webdeveloper (.NET/C#/Eindhoven/4

As a C# .Net Developer you will be responsible for developing back-end and front-end features for 8 e-cpmmerce websites with about 500.000 visitors per month. You will work with latest Microsoft technology running on Microsoft Azure platform. You use such tools as jQuery, Bootstrap, BitBuckey/GIT, Angular JS, Visual Studio (2017/2019), Jira. You will be a part of ICT team (6 people) that works in a close cooperation with an on-line marketing department. The workflow is organized in accordance with Agile (SCRUM) methodologies. Requirements At least 1 year of experience in .NET developing Knowledge of ASP.NET MVC Knowledge of SQL 2012

Bekijk vacature »

Developer / Middleware / veel verantwoordelijkheid

Functieomschrijving Heb jij ervaring met het ontwikkelen van Middleware? Ben je daarbij ook ervaren met het schrijven van code in de integratielaag en wil je van A tot Z meedenken met het proces binnen een bekende organisatie? Neem dan contact met mij op! Het projectmatig ontwikkelen van middleware, dit zal zo'n 70% van je tijd in beslag nemen; Het onderhouden en beheren van de ontwikkelde middleware, dit zal zo'n 30% van je tijd in beslag nemen; Meedenken over verbeteringen voor de integratielaag; Samenwerken met de overige IT teams om de omgeving zo optimaal mogelijk te laten werken; Het opzetten en

Bekijk vacature »

Full-stack .NET Developer

Organisatie Deze organisatie is al 25 jaar actief in de zorgsector en is marktleider binnen haar branche. De software die ze leveren is complex en zeer technisch, wat het altijd uitdagend maakt. De software wordt gebruikt door professionals binnen de medische branche, die door deze software beter en efficiënter patiënten kunnen behandelen. Dit betekent dat jij bijdraagt aan software met maatschappelijke impact! Voor de werknemers binnen deze organisatie geldt dit als intrinsieke motivatie. Je komt dus in een team terecht waarbinnen de neuzen dezelfde kant op staan en waarvoor het maatschappelijk belang van de software de drijfveer is. Dit alles

Bekijk vacature »

Senior Drupal developer gezocht!

Organisatie Deze organisatie staat aan de bovenkant van de markt als we het hebben over Drupal organisaties. Samen met een team van 7 developers in hun vestiging in Rotterdam zorgen zij er elke dag weer voor dat de klant een tevreden klant is maar zij zelf ook elke dag blijven leren. Medio 2015 is deze club ontstaan en nu al een van de grotere Drupal bureaus. Ze werken hier met een heel technisch, fijn maar ook zelfstandig team voor gave klanten. Hier werk je aan online applicaties waarbij complexe gestructureerde informatie online ontsloten, gemanaged en/of geëxploiteerd wordt. Veel van hun

Bekijk vacature »

Senior C# .NET developer frontend / Werken met GIS

Beeld je eens in dat je op een zachte lentedag fluitend in je korte broek binnen komt wandelen. Bij binnenkomst krijg je het gevoel of je in een grote zaal staat, tegelijkertijd zie jij jouw collega’s een potje tafelvoetbal spelen en zie je achterin de zaal de ruimte die gereserveerd is om te gamen. Jouw 80 collega’s zijn druk aan het werk, maar je hoort hen niet. Dit komt doordat de werkruimtes gescheiden zijn door glazen wanden. Jij werkt zelf ook in 1 van die glazen ruimtes. Dit doe jij met een scrumteam van 3 tot 5 man, waarin jij

Bekijk vacature »

Medior PHP developer Hostingbranche

Organisatie Onze partner uit de omgeving van Rotterdam is opgericht in 2000 en beheert ruim tienduizenden websites en is met ruim 190.000 domeinnamen een van de grootste cloud en hostingproviders van Nederland. Hun missie is om de online ambities van klanten waar te maken en werkt met het gehele team aan een zo goed mogelijke klantbeleving. Zij leveren domeinnamen, shared webhosting, Virtual Private Servers, e-mailhosting en online back up aan zzp-ers en MKB bedrijven. Op dit moment zorgen zij met hun team van 25 medewerkers ervoor dat zij hun missie waar kunnen maken. Functie Als medior backend PHP developer werk

Bekijk vacature »

Junior PHP Developer

Organisatie Deze organisatie is gelegen in de buurt van Breda en met OV ontzettend goed te bereizen. Voor deze partij zijn wij momenteel op zoek naar PHP talent wegens een groot tekort aan ontwikkelcapaciteit. Na een kwaliteitsslag is gebleken dat het team van ruim 8 developers wel extra handen kan gebruiken, momenteel zijn zij dagelijks bezig met het (door)ontwikkelen van ingewikkelde systemen. Binnen deze organisatie krijg je de mogelijkheid technisch écht de diepte in te gaan, dit omdat jemag werken aan zware applicaties voor een product dat wereldwijd wordt gebruikt in de branche. Functie Als schoolverlater of als PHP developer

Bekijk vacature »

Ervaren PHP Developer die startups en multinationa

Organisatie Veel detachering organisaties denken vanuit uit belang van hun klanten en kijken welke consultants daar goed op passen. Wat deze organisatie onderscheid is dat ze met jou gaan kijken waar je goed in bent, waar je je in wilt gaan ontwikkelen en wat je interesses zijn. Op basis daarvan worden de klanten geselecteerd waarvan je voor een periode van minimaal 3 maanden mee gaat draaien in het team. Dit kan zijn in een rol als medior, senior, lead developer of architect. Hierbij krijg je de kans om jezelf te ontwikkelen binnen allerlei grote bekende organisaties. Omdat deze detacheringclub met

Bekijk vacature »

DevOps PHP software engineer

Deze grootschalige verzekeringsmaatschappij is opzoek naar een ervaren DevOps PHP engineer! Hier kom je terecht Bij een van de meest vooruitstrevende organisaties binnen de financiële dienstverlening! Deze organisatie is een succesvolle speler in de verzekeringsbranche met meerdere producten, merken en platformen onder zich. Met een echte ‘handen uit de mouwen mentaliteit’ zorgen zij er met meer dan 200 collega’s voor dat ze hard groeien en elke dag weer een topdag is. Werken in de verzekeringen is allesbehalve saai! Je werkt in een inspirerende en informele sfeer, waarin ontwikkeling, hard werken en plezier centraal staat. In de pauze kun je een

Bekijk vacature »

Back-end Developer

Hey Backend Developer met allround IT Skills, Heb je heel even om het volgende te lezen? KWIKQY denkt dagelijks als een start-up. Do you love Back-end en heb je ook nog brede kennis van IT en/of server beheer in de Cloud (denk aan AWS of Google Cloud) ofwel ben jij een IT all-rounder? Cool! Dan is KWIKQY jouw toekomst, gegarandeerd! Ben jij zo gedreven dat jij als back-end developer de rots in de branding bent voor onze innovatieve en internationaal snel groeiende software tool KWIKQY? Vind jij afwisseling, persoonlijke groei, verantwoording, innovatie (denk aan kunstmatige intelligentie) en toekomst belangrijk? Dan

Bekijk vacature »

Senior .NET developer / Utrecht /

Heb jij wel eens een wandeling gemaakt in het park met je collega’s? Nee? Hoe vaak heb jij de mogelijkheid gehad om de stad in te gaan in de pauze? Ook niet? Lijkt het je wel lekker om midden in hartje centrum te werken met alle voordelen en gezelligheid van dien? En werk je graag met ambitieuze collega’s aan de nieuwste oplossingen op het gebied van ticketsoftware? Dan ben ik op zoek naar jou! Op een steenworp afstand van Utrecht Centraal, in hartje centrum, ligt een organisatie die is gespecialiseerd in de ontwikkeling van ticketsoftware systemen. Van online tickets bestellen

Bekijk vacature »

Een ervaren PHP Developer in de financiële se

Vacature Omschrijving Onze klant is gespecialiseerd in technologie die het mogelijk maakt veilig, snel en zonder gedoe te betalen op het internet. Je kunt hierbij denken aan verschillende soorten manieren van online betalen, zoals via iDEAL, creditcard, per telefoon, maar ook specifiek voor evenementen. Vanuit verschillende soorten locaties in Nederland werk je met een jong en hecht team aan een zelfontwikkelde systeem. Hiermee maakt de organisatie jaarlijks miljoenen betalingen mogelijk voor duizenden webshops en websites. Interessant? Lees dan snel verder wat de functie verder inhoudt. Functieomschrijving In een hecht team ga je samen van ontwikkelaars producten onderhouden, ontwikkelen en optimaliseren.

Bekijk vacature »

Junior PHP developer

Vacature Omschrijving Functieomschrijving Je komt in een team te werken van twee ervaren developers, waarvan één parttime wil gaan werken. Door deze developer zul je ook worden ingewerkt en je gaat op den duur taken van hem overnemen. Je zult veel van beide developers leren: je zult altijd je vragen kunnen stellen, maar aan de andere kant moet je het ook een uitdaging vinden om zaken zelfstandig op te lossen. Andere kant zien we jou ook als een frisse wind in het bedrijf. Je geeft nieuwe inzichten en durft ook wel eens verder te denken dan de bestaande kaders. Bij

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

16/07/2019 07:10:48
 
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.