 
		 
			 
			
			
			Ziet er wel netjes uit, maar ik vraag me dan af waarom dit soort dingen niet gewoon native in PHP zitten, het zijn toch dingen die je in vrijwel elk stukje code nodig hebt (of wilt hebben).quote:Op zondag 19 januari 2014 15:14 schreef totalvamp het volgende:
[..]
Yep je hebt standaard interfaces die je kunt implementeren.
http://www.php.net/manual/en/class.iteratoraggregate.php
 
			 
			
			
			Het is toch native? De reden dat je niet een standaard classe hebt, is omdat PHP flexibel is in implementatie. Wat voor de 1 werkt, gaat niet werken voor een ander.quote:Op zondag 19 januari 2014 15:19 schreef raptorix het volgende:
[..]
Ziet er wel netjes uit, maar ik vraag me dan af waarom dit soort dingen niet gewoon native in PHP zitten, het zijn toch dingen die je in vrijwel elk stukje code nodig hebt (of wilt hebben).
Maar goed dit is even mijn laatste post mbt .net want geen zin om dit topic te vervuilen.
 
			 
			
			
			Doctrine en LINQ zijn twee totaal verschillende dingen. De enige overeenkomst is dat ze beide queries gebruiken. Doctrine is een object-relation mapper en biedt een abstractielaag tussen de domain entities en de opslag. De entiteit User hoeft en moet niet weten hoe zijn eigen data opgeslagen of opgehaald wordt. Daar zorgt de mapper voor. LINQ biedt een standaardwijze om queries uit te voeren op datastructuren, waarbij de data van uiteenlopende bronnen kan komen zoals lijsten, databaseresultaten, xml-bestanden.quote:Op zondag 19 januari 2014 15:07 schreef raptorix het volgende:
[..]
Doctrine wat ik voor zover zie is geen native onderdeel van een taal, linq is dat wel voor c# wat meestal belangrijke peformance winst bied. Linq gaat veel verder als een ORM je kunt bijvoorbeeld direct linq queries doen op een array, list of dctionary, geloof me het is enorm handig, en met tools als resharper kun je bijvoorbeeld een loop gelijk converten naar een linq query.
 
			 
			
			
			Dat was inderdaad ook mijn indruk, overigens ben ik niet zo een fan van ORM mappers, tenzij je heel goed weet waar je mee bezig bent, anders gezegt, je datamodel moet al geoptimaliseerd zijn, anders is het gebruik van ORM levensgevaarlijk. Voor een niet nader te noemen site hebben we het gebruikt, maar wat we dus deden was een aparte database maken waar de ORM op aangesloten was, ik zie nog wel eens voorbeelden waar men ORM mappers inzet op relationele databases inclusief veel joins over tables, geloof me daar ga je echt op je bek als je veel load krijgt.quote:Op zondag 19 januari 2014 15:26 schreef zoem het volgende:
[..]
Doctrine en LINQ zijn twee totaal verschillende dingen. De enige overeenkomst is dat ze beide queries gebruiken. Doctrine is een object-relation mapper en biedt een abstractielaag tussen de domain entities en de opslag. De entiteit User hoeft en moet niet weten hoe zijn eigen data opgeslagen of opgehaald wordt. Daar zorgt de mapper voor. LINQ biedt een standaardwijze om queries uit te voeren op datastructuren, waarbij de data van uiteenlopende bronnen kan komen zoals lijsten, databaseresultaten, xml-bestanden.
 
			 
			
			
			Je moet inderdaad je database al zo perfect mogelijk hebben opgezet, daarom mongoDBquote:Op zondag 19 januari 2014 16:00 schreef raptorix het volgende:
[..]
Dat was inderdaad ook mijn indruk, overigens ben ik niet zo een fan van ORM mappers, tenzij je heel goed weet waar je mee bezig bent, anders gezegt, je datamodel moet al geoptimaliseerd zijn, anders is het gebruik van ORM levensgevaarlijk. Voor een niet nader te noemen site hebben we het gebruikt, maar wat we dus deden was een aparte database maken waar de ORM op aangesloten was, ik zie nog wel eens voorbeelden waar men ORM mappers inzet op relationele databases inclusief veel joins over tables, geloof me daar ga je echt op je bek als je veel load krijgt.
 
											 
			 
			
			
			Jup, in die tijd was nosql nog niet zo ver, wat we deden was dat we alle data platgeslagen hadden in views, beide voor search results en voor detail objects, beetje het idee van nosql maar dan gewoon een normale databasequote:Op zondag 19 januari 2014 16:03 schreef totalvamp het volgende:
[..]
Je moet inderdaad je database al zo perfect mogelijk hebben opgezet, daarom mongoDB
 
											 
			 
			
			
			Wij gebruikten serialized bestanden om de database wat ademruimte te geven. Die op een aparte file server. Soort van cache :/quote:Op zondag 19 januari 2014 16:09 schreef raptorix het volgende:
[..]
Jup, in die tijd was nosql nog niet zo ver, wat we deden was dat we alle data platgeslagen hadden in views, beide voor search results en voor detail objects, beetje het idee van nosql maar dan gewoon een normale database
 
			 
			
			
			Samengevat: een taaluitbreiding om diverse gegevensbronnen te doorzoeken, filteren en te ordenen. Er zijn ook PHP-implementaties van.quote:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | List<int> Numbers = new List<int>() {1,2,3,4}; // list with 4 numbers // query is defined but not evaluated var query = from x in Numbers select x; Numbers.Add(5); // add a 5th number // now the query gets evaluated Console.WriteLine(query.Count()); // 5 Numbers.Add(6); // add a 6th number Console.WriteLine(query.Count()); // 6 | 
| 1 2 3 4 5 6 7 8 | var results =  from c in SomeCollection where c.SomeProperty < 10 select new {c.SomeProperty, c.OtherProperty}; foreach (var result in results) { Console.WriteLine(result); } | 
 
			 
			
			
			Komt erop neer dat je direct gegevens collecties kunt querien net zoals je dat met een database doet, ik vind het zelf 1 van de meest besparende zaken in mijn werkzaamheden. Als je er eenmaal mee gewerkt hebt wil je echt niet meer terug, overigens werk ik in mijn team met 2 voormaal php developers die c# binnen 2 maandjes goed onder de knie hadden, en echt niet meer terug wildenquote:
 
											 
			 
			
			
			 
											 
			 
			
			
			You don't need it.quote:
 
			 
			
			
			Daarom gebruik ik Perlquote:Op zondag 19 januari 2014 15:31 schreef zoem het volgende:
Wat betreft de php/C# discussie: use the right tool for the right job
 
											 
			 
			
			
			Kortgezegd zorgt Doctrine ervoor dat je code met de database kan praten in de vorm van objecten. Als je aan één van beide kanten iets veranderd, hoef je alleen je Doctrine aan te passen. Dat is doorgaans een stuk minder en ook overzichtelijker werk dan in de database zelf klooien.quote:Op zondag 19 januari 2014 21:19 schreef henrivo het volgende:
Kan iemand mij nou voor eens en voor altijd uitleggen waarom de hele wereld nou zo lyrisch lijkt te zijn over dat Doctrine? Snap er de ballen van
 
											 
			 
			
			
			 
			 
			
			
			Je hebt gelijk, OO is overrated.quote:Op zondag 19 januari 2014 21:19 schreef henrivo het volgende:
Kan iemand mij nou voor eens en voor altijd uitleggen waarom de hele wereld nou zo lyrisch lijkt te zijn over dat Doctrine? Snap er de ballen van
 
			 
			
			
			Ik heb in een ver verleden eens voor een Duits bedrijf JSP geschreven, daar waren niet alleen de variabelen en comments in het Duits, deel van JSP was zelf in het Duits veranderd. Abfrage ipv Query, Schleife ipv Loop etc... maar dit was maar voor 50% doorgevoerd wat hele rare code produceerde.quote:Op zondag 19 januari 2014 14:21 schreef slacker_nl het volgende:
[..]
Dan moet je eens voor Nederlandse toko's gaan werken waar de voertaal Nederlands is. Dan kom je het vaak genoeg tegen. Best apart kan ik je vertellen. Je docs zijn Engels, je releasenotes Nederlands, je code Dunglish
Fransen kunnen er ook wat van.. je krijgt dan echt leuke Franstalige foutmeldingen.. hehehe.
 .
 .| 1 2 3 4 5 6 7 8 9 10 11 | Abfrage qryMenu = new Abfrage("jdbc/kantine","select description, to_char(menu_date,'dd.mm.yyyy') from menu where to_char(menu_date,'yyyy.mm.dd') "+ " = to_char(sysdate+"+iDifferenz+",'yyyy.mm.dd') and flag = 1"); ResultSet resultMenu = qryMenu.abfrageAusfuehren(); while(resultMenu != null && resultMenu.next()) { strMenue = resultMenu.getString(1); strDate = resultMenu.getString(2); } qryMenu.abfrageSchliessen(); | 
 
			 
			
			
			 
											 
			 
			
			
			"There are 2 hard problems in computer science: cache invalidation, naming things and off-by-1 errors"quote:Op maandag 20 januari 2014 10:14 schreef KomtTijd... het volgende:
Ik moet bekennen dat ik zelf ook weleens terugval op Nederlands als ik niet zo snel op een goeie engelse term kan komen
 
			 
			
			
			Achquote:Op maandag 20 januari 2014 10:12 schreef Sitethief het volgende:
[..]
Ik heb in een ver verleden eens voor een Duits bedrijf JSP geschreven, daar waren niet alleen de variabelen en comments in het Duits, deel van JSP was zelf in het Duits veranderd. Abfrage ipv Query, Schleife ipv Loop etc... maar dit was maar voor 50% doorgevoerd wat hele rare code produceerde.
.
Edit: voorbeeldje uit mijn mail gevist (9 jaar geleden door een collega geschreven)
[ code verwijderd ]

| 1 2 3 4 5 6 | $(function() { $("button").on("click", function() { var この = this; この.innerHTML = "¡Hola, mundo!"; }); }); | 
 
			 
			
			
			Japanse code die Spaans teruggeeftquote:Op maandag 20 januari 2014 10:49 schreef Aether het volgende:
[..]
Ach
[ code verwijderd ]
Ik heb ook wel stukken in het Nederlands geschreven, bijvoorbeeld voor het onderwijs waar zo veel terminologie werd gebruikt dat het niet handig was om (veel) Engels te gebruiken.
 .
 .  .
 .
											 
			 
			
			
			Gadver. Bij mij is alles in het Engels. Foutmeldingen zijn in twee talen (Nederlands en Engels) beschikbaar als er buitenlanders met een tool moeten werken die ik heb geschreven.quote:Op maandag 20 januari 2014 10:12 schreef Sitethief het volgende:
[..]
Ik heb in een ver verleden eens voor een Duits bedrijf JSP geschreven, daar waren niet alleen de variabelen en comments in het Duits, deel van JSP was zelf in het Duits veranderd. Abfrage ipv Query, Schleife ipv Loop etc... maar dit was maar voor 50% doorgevoerd wat hele rare code produceerde.
.
Edit: voorbeeldje uit mijn mail gevist (9 jaar geleden door een collega geschreven)
[ code verwijderd ]
 
			 
			
			
			Als je één var hebt die zo'n maf karakter heeft, is dat wel lekker makkelijk onthoudenquote:Op maandag 20 januari 2014 10:49 schreef Aether het volgende:
[..]
Ach
[ code verwijderd ]
Ik heb ook wel stukken in het Nederlands geschreven, bijvoorbeeld voor het onderwijs waar zo veel terminologie werd gebruikt dat het niet handig was om (veel) Engels te gebruiken.
 
											 
			 
			
			
			1tje wel, 100erden nietquote:Op maandag 20 januari 2014 11:34 schreef KomtTijd... het volgende:
Als je één var hebt die zo'n maf karakter heeft, is dat wel lekker makkelijk onthouden
 
											 
			 
			
			
			Wow, vreselijkquote:Op maandag 20 januari 2014 10:12 schreef Sitethief het volgende:
[..]
Ik heb in een ver verleden eens voor een Duits bedrijf JSP geschreven, daar waren niet alleen de variabelen en comments in het Duits, deel van JSP was zelf in het Duits veranderd. Abfrage ipv Query, Schleife ipv Loop etc... maar dit was maar voor 50% doorgevoerd wat hele rare code produceerde.
.
Edit: voorbeeldje uit mijn mail gevist (9 jaar geleden door een collega geschreven)
[ code verwijderd ]
 
											 
			 
			
			
			Ik zou daar niet eens aan beginnen, tegen die collega zeggen dat hij alles maar gaat vertalen naar een fatsoenlijke taal.quote:Op maandag 20 januari 2014 10:12 schreef Sitethief het volgende:
[..]
Ik heb in een ver verleden eens voor een Duits bedrijf JSP geschreven, daar waren niet alleen de variabelen en comments in het Duits, deel van JSP was zelf in het Duits veranderd. Abfrage ipv Query, Schleife ipv Loop etc... maar dit was maar voor 50% doorgevoerd wat hele rare code produceerde.
.
Edit: voorbeeldje uit mijn mail gevist (9 jaar geleden door een collega geschreven)
[ code verwijderd ]
 
			 
			
			
			 
			 
			
			
			Dat heeft niks met die collega te maken, dit was de taal die standaard gebruikt werd binnen het bedrijfquote:Op maandag 20 januari 2014 18:34 schreef totalvamp het volgende:
[..]
Ik zou daar niet eens aan beginnen, tegen die collega zeggen dat hij alles maar gaat vertalen naar een fatsoenlijke taal.
Alles anders dan Engels is in een programmeertaal egoïstisch en walgelijk. Het commentaar kan ik nog begrijpen, maar code zelf...
Sowieso moeten duitsers bijna alles vertalen en geen idee waarom.
 .
.
											 
			 
			
			
			Dan is dat iets wat je tegen je baas moet zeggen.quote:Op maandag 20 januari 2014 18:56 schreef Sitethief het volgende:
[..]
Dat heeft niks met die collega te maken, dit was de taal die standaard gebruikt werd binnen het bedrijf.
 
			 
			
			
			Dit was 9 jaar geleden tijdens een buitenlandstage héquote:Op maandag 20 januari 2014 19:00 schreef totalvamp het volgende:
[..]
Dan is dat iets wat je tegen je baas moet zeggen.
Als ik foute dingen tegenkom in code doe ik dat ook altijd. Niet elke baas reageert er goed op, maar dan weet je gelijk wat voor vlees je in de kuip hebt.
 .
.
											 
			 
			
			
			Ahh xD als stagiair luistert niemand naar jequote:Op maandag 20 januari 2014 19:01 schreef Sitethief het volgende:
[..]
Dit was 9 jaar geleden tijdens een buitenlandstage hé.
 
											 
			 
			
			
			Zeker niet in Duitsland, daar liggen de verhoudingen net iets anders. Ook compleet andere arbeidsethos hebben die lui. All work no play, tot dat de lunchpauze begint, kheb nog nooit zoveel lol gehad tijdens de lunch, en dan terug op je werkplek ging de knop weer om. Heb 1 keer geprobeerd een grappig filmpje aan een collega te laten zien tijdens werktijd... dat deed ik daarna niet weer.quote:Op maandag 20 januari 2014 19:02 schreef totalvamp het volgende:
[..]
Ahh xD als stagiair luistert niemand naar je
 
			 
			
			
			DAS IS NICHT TOL! RAUS ARBEITEN!quote:Op maandag 20 januari 2014 19:27 schreef Sitethief het volgende:
[..]
Zeker niet in Duitsland, daar liggen de verhoudingen net iets anders. Ook compleet andere arbeidsethos hebben die lui. All work no play, tot dat de lunchpauze begint, kheb nog nooit zoveel lol gehad tijdens de lunch, en dan terug op je werkplek ging de knop weer om. Heb 1 keer geprobeerd een grappig filmpje aan een collega te laten zien tijdens werktijd... dat deed ik daarna niet weer.

 
											 
			 
			
			
			Ach mijn huidige baas heeft wat dat betreft een compleet andere houding. Zolang ik mijn tickets en projecten op schema houd mag er best wel een lol getrapt worden. Tenzij tijdens de Q&A en testrondesquote:Op maandag 20 januari 2014 19:29 schreef totalvamp het volgende:
[..]
DAS IS NICHT TOL! RAUS ARBEITEN!
Mijn beste duits
Ik heb eerlijk gezegd liever stilte of iets van klassieke muziek met koptelefoon op. Ik ben veel te snel afgeleid.
Thuis doe ik altijd 3 dingen tegelijk op de computer, soms kijk ik 2 filmpjes tegelijk en speel een spelletje
 . Zorgt ook voor een betere sfeer en dus een beter team met minder spanningen.
. Zorgt ook voor een betere sfeer en dus een beter team met minder spanningen.
											 
			 
			
			
			Ja bij mijn vorige werk stond er vaak 1 bepaalde video op die alle mannen van hun werk af hield. (op een groot tv scherm).quote:Op maandag 20 januari 2014 19:39 schreef Sitethief het volgende:
[..]
Ach mijn huidige baas heeft wat dat betreft een compleet andere houding. Zolang ik mijn tickets en projecten op schema houd mag er best wel een lol getrapt worden. Tenzij tijdens de Q&A en testrondes. Zorgt ook voor een betere sfeer en dus een beter team met minder spanningen.
 
			 
			
			
			wij hebben fussbal (stagiair sinds gisteren)quote:Op maandag 20 januari 2014 19:39 schreef Sitethief het volgende:
[..]
Ach mijn huidige baas heeft wat dat betreft een compleet andere houding. Zolang ik mijn tickets en projecten op schema houd mag er best wel een lol getrapt worden. Tenzij tijdens de Q&A en testrondes. Zorgt ook voor een betere sfeer en dus een beter team met minder spanningen.
 
			 
			
			
			| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php class lala { function __construct($type) { if($type){ $this->setType($type); }else{ throw new \Exception('Invalid type'); } } /** * Hier stel je het type in */ function setType($type){ if($type){ $this->type = $type; }else{ throw new \Exception('Invalid type'); } } } ?> | 
 
			 
			
			
			Als de type niet meer veranderd gewoon in de construct gooien.quote:Op woensdag 22 januari 2014 10:40 schreef Sitethief het volgende:
[ code verwijderd ]
Is dit onzinning? $this->type is altijd nodig voor de class, maar mag niet veranderen na de class aangeroepen te hebben. Is een aparte set dan überhaupt nuttig?Want ik zit ermee dat ik op twee plekken exceptions wil throwen als $type er niet is, wat een beetje dubbel lijkt. Kan ik dan niet beter gewoon $this-type in de construct vullen? Ik ben mezelf momenteel een beetje aan het leren met exceptions om te gaan.
 
			 
			
			
			Dat dacht ik ook, om nou een complete serie Setters en Getters te maken voor dingen die alleen intern gebruikt worden en die niet veranderen lijkt me een beetje te ver doorgeschoten in de OOP.quote:Op woensdag 22 januari 2014 11:01 schreef totalvamp het volgende:
[..]
Als de type niet meer veranderd gewoon in de construct gooien.
 
			 
			
			
			Dat is het inderdaad. Getters en setters kunnen handig zijn we een groot aantal andere dingen, wat je eventueel ook nog kunt doen is een closure meesturen in de construct die de type set.quote:Op woensdag 22 januari 2014 11:03 schreef Sitethief het volgende:
[..]
Dat dacht ik ook, om nou een complete serie Setters en Getters te maken voor dingen die alleen intern gebruikt worden en die niet veranderen lijkt me een beetje te ver doorgeschoten in de OOP.
| 1 2 3 4 5 6 7 8 9 | <?php Class bla { Public function __construct(Closure $closure) { $closure(); } } New bla(function(){ $this->type = new TypeThingy(); }); ?> | 
 
			 
			
			
			Wow, dat lijkt akelig veel op javascriptquote:Op woensdag 22 januari 2014 11:09 schreef totalvamp het volgende:
[..]
Dat is het inderdaad. Getters en setters kunnen handig zijn we een groot aantal andere dingen, wat je eventueel ook nog kunt doen is een closure meesturen in de construct die de type set.
[ code verwijderd ]
Vergeef typfouten, programmeren is lastig op een telefoon
 . Maar dat voegt wel wat meer dynamiek toe, dat kan idd handig zijn.
. Maar dat voegt wel wat meer dynamiek toe, dat kan idd handig zijn. 
			 
			
			
			Dan gebruik je $this zonder dat je in een object zit, dat vindt PHP niet lief.quote:Op woensdag 22 januari 2014 11:09 schreef totalvamp het volgende:
[..]
Dat is het inderdaad. Getters en setters kunnen handig zijn we een groot aantal andere dingen, wat je eventueel ook nog kunt doen is een closure meesturen in de construct die de type set.
[ code verwijderd ]
Vergeef typfouten, programmeren is lastig op een telefoon
 
			 
			
			
			jawel hoorquote:Op woensdag 22 januari 2014 22:22 schreef Light het volgende:
[..]
Dan gebruik je $this zonder dat je in een object zit, dat vindt PHP niet lief.
 Sinds PHP 5.4 kunnen closures $this aanroepen.
 Sinds PHP 5.4 kunnen closures $this aanroepen.
											 
			 
			
			
			Klopt. Ik heb deze code geprobeerd:quote:Op woensdag 22 januari 2014 22:22 schreef totalvamp het volgende:
[..]
jawel hoorSinds PHP 5.4 kunnen closures $this aanroepen.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php class Foo { private $bar; public function __construct($closure = null) { if(is_callable($closure)) { $closure(); var_dump($this->bar); } } } $foo = new Foo(function(){$this->bar = 'bar';}); | 
| 1 | Fatal error: Using $this when not in object context in Test/test.php on line 16 | 
 
			 
			
			
			Klopt, omdat de syntax normaal ook anders isquote:Op woensdag 22 januari 2014 22:26 schreef Light het volgende:
[..]
Klopt. Ik heb deze code geprobeerd:
[ code verwijderd ]
En ik kreeg daarbij een fout op de laatste regel:
[ code verwijderd ]
 het was meer om hem een idee te geven.
 het was meer om hem een idee te geven.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php class Test { public $type = 'test'; public function setType(Closure $closure) { $closure($this); } public function getType() { echo $this->type; } } $t = new Test(); $t->getType(); $t->setType(function($t){$t->type = 'test2';}); $t->getType(); ?> | 


 
			 
			
			
			 
			 
			
			
			Eerste hit op google:quote:Op dinsdag 28 januari 2014 14:23 schreef Skunk-m het volgende:
Weet iemand hoe k met een query de 10 topics met de laatste ongelezen reacties van phpbb kan krijgen?
Ik heb al vanalles geprobeerd maar zonder succes.
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.

| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |