abonnementen ibood.com bol.com Gearbest
pi_144547083
registreer om deze reclame te verbergen
php.jpg


Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wŠt er niet lukt en wťlke foutmelding je precies krijgt :)

Zie ook:
PHP Dataverwerking
OfficiŽle PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Succes heren met het volgende deeltje!
pi_144738323
registreer om deze reclame te verbergen
Wat is het nut ervan om iets static te definieren?

Als ik het doe:

1
2
3
4
5
6
7
class voorbeeld {
    public function lala(){
        echo "Hoi"
    }
}

 voorbeeld::lala();

Waar is die static bij function dan voor nodig :?

En op een andere manier:

1
2
3
4
5
6
7
class voorbeeld {
    static function lala(){
        echo "Hoi"
    }
}
   $voorbeeld = new voorbeeld;
   $voorbeeld->lala();
Wat voor zin heeft static dan nog?
pi_144739767
quote:
1s.gif Op zaterdag 20 september 2014 23:25 schreef Robuustheid het volgende:
Wat is het nut ervan om iets static te definieren?

Als ik het doe:
[ code verwijderd ]


Waar is die static bij function dan voor nodig :?

En op een andere manier:
[ code verwijderd ]

Wat voor zin heeft static dan nog?

Een static-methode is handig als de methode niet iets met de klasse zelf hoeft te doen.

Stel dat je bijvoorbeeld een Math-klasse hebt. Is het niet een beetje vreemd om een object Math te hebben om dan pas methodes te kunnen gebruiken voor abs etc.? Dan kun je beter al die Math-methodes static maken.
pi_144739830
En als je er niet-static functie aanroept alsof 'ie wel static is, dan kun je gekke dingen krijgen. Bijv. dat autoload soms niet werkt en heel raar doet, zoals ik in het vorige topic leerde.
pi_144739951
registreer om deze reclame te verbergen
Overigens is het discutabel of je classes met enkel static methodes wel in een klasse moet stoppen of gewoon in een namespace.

Maar ja, geen OOP. :P
pi_144740160
quote:
1s.gif Op zaterdag 20 september 2014 23:25 schreef Robuustheid het volgende:
Wat is het nut ervan om iets static te definieren?

Als ik het doe:
[ code verwijderd ]


Waar is die static bij function dan voor nodig :?

En op een andere manier:
[ code verwijderd ]

Wat voor zin heeft static dan nog?

Het eerste geeft een strict warning in PHP. In de meeste OO talen kan het niet eens.
Desalniettemin gebruik je het bijvoorbeeld voor utility classes, singleton patterns, enzovoort.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144740199
quote:
1s.gif Op zondag 21 september 2014 00:15 schreef robin007bond het volgende:
Overigens is het discutabel of je classes met enkel static methodes wel in een klasse moet stoppen of gewoon in een namespace.

Maar ja, geen OOP. :P
Hoe bedoel je? Met andere manieren ben ik niet mee bekend.
pi_144741040
quote:
0s.gif Op zondag 21 september 2014 00:24 schreef Robuustheid het volgende:

[..]

Hoe bedoel je? Met andere manieren ben ik niet mee bekend.
Gewoon procedureel. :)
  zondag 21 september 2014 @ 10:07:46 #11
187069 slacker_nl
Sicko pur sang
pi_144746047
quote:
0s.gif Op zondag 21 september 2014 00:08 schreef robin007bond het volgende:

[..]

Een static-methode is handig als de methode niet iets met de klasse zelf hoeft te doen.

Stel dat je bijvoorbeeld een Math-klasse hebt. Is het niet een beetje vreemd om een object Math te hebben om dan pas methodes te kunnen gebruiken voor abs etc.? Dan kun je beter al die Math-methodes static maken.
Waarom zou je het dan uberhaupt OO maken?
In theory there is no difference between theory and practice. In practice there is.
pi_144746075
quote:
1s.gif Op zondag 21 september 2014 10:07 schreef slacker_nl het volgende:

[..]

Waarom zou je het dan uberhaupt OO maken?
Even mezelf quoten:
quote:
1s.gif Op zondag 21 september 2014 00:15 schreef robin007bond het volgende:
Overigens is het discutabel of je classes met enkel static methodes wel in een klasse moet stoppen of gewoon in een namespace.

Maar ja, geen OOP. :P
Wellicht dat consistentie een reden is.
pi_144746408
Bedankt voor jullie bijdragen. Het is dus geen valide code, maar wordt desondanks wel uitgevoerd.

Als ik error_reporting(E_ALL | E_STRICT); doe, verschijnt er nog steeds geen waarschuwing als ik bovenstaand code uitvoer?
pi_144746607
quote:
0s.gif Op zondag 21 september 2014 10:43 schreef Robuustheid het volgende:
Bedankt voor jullie bijdragen. Het is dus geen valide code, maar wordt desondanks wel uitgevoerd.

Als ik error_reporting(E_ALL | E_STRICT); doe, verschijnt er nog steeds geen waarschuwing als ik bovenstaand code uitvoer?
Probeer het hier maar: http://sandbox.onlinephpfunctions.com/

met deze code:

1
2
3
4
5
6
7
8
9
10
11
<?php
error_reporting
(E_ALL E_STRICT);

class 
voorbeeld {
    public function 
lala() {
        echo 
"Hoi";
    }
}

 
voorbeeld::lala();
?>

Krijg je bij elke versie met uitzondering van 4.4.9 een strict warning.
Als je de E_STRICT en public eruit sloopt en het op 4.4.9 uitvoert, dan krijg je geen melding.

De reden dat je absoluut geen non-static methods als static wilt gaan aanroepen, is dat een non-static method toegang heeft tot de state van een instance. Dan kun je dus problemen krijgen. Probeer dit maar eens uit te voeren:

1
2
3
4
5
6
7
8
9
10
11
<?php
class voorbeeld {
    private 
$a 3;

    public function 
lala($b) {
        echo 
$this->a*$b;
    }
}

 
voorbeeld::lala(3);
?>
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  zondag 21 september 2014 @ 11:19:30 #15
8130 raptorix
THAI CHARACTER MAITAIKHU
pi_144746958
Static heeft volgens mij ook compile en geheugen technisch voordelen, ik vermoed dat als je iets static definieert deze nooit 2 keer in geheugen zal komen.
pi_144748447
quote:
0s.gif Op zondag 21 september 2014 11:19 schreef raptorix het volgende:
Static heeft volgens mij ook compile en geheugen technisch voordelen, ik vermoed dat als je iets static definieert deze nooit 2 keer in geheugen zal komen.
Dat is allemaal erg marginaal. Natuurlijk, als je elke keer instances moet gaan maken in je code om een of andere utility method aan te roepen, dan is dat niet heel efficiŽnt, maar dat zijn niet de zaken die doorgaans geheugenproblemen veroorzaken.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144785971
Ik heb een soort van download server gemaakt. PHP script serveert de bestanden. Bestanden zijn tussen de 2GB en 5GB.

Echter stopt de download automatisch na een paar seconde.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$mm_type
="application/octet-stream";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: " $mm_type);
header("Content-Length: " .(string)(filesize($path)) );
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary\n");
readfile($path); // outputs the content of the file
exit();
?>
  maandag 22 september 2014 @ 13:24:43 #18
91039 mstx
2x1/2 = 1/2 x 1/2
pi_144786397
quote:
0s.gif Op maandag 22 september 2014 13:09 schreef xaban06 het volgende:
Ik heb een soort van download server gemaakt. PHP script serveert de bestanden. Bestanden zijn tussen de 2GB en 5GB.

Echter stopt de download automatisch na een paar seconde.
[ code verwijderd ]

Ok man ^O^
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_144788962
quote:
0s.gif Op maandag 22 september 2014 13:09 schreef xaban06 het volgende:
Ik heb een soort van download server gemaakt. PHP script serveert de bestanden. Bestanden zijn tussen de 2GB en 5GB.

Echter stopt de download automatisch na een paar seconde.
[ code verwijderd ]

Je kunt readfile beter niet voor dit soort situaties gebruiken. De gehele file wordt namelijk ingeladen en daarna pas verzonden. Je zult waarschijnlijk al eerder een ‘out of memory’ krijgen.

Een betere oplossing is om het bestand in kleinere blokken te lezen en deze te verzenden: (niet getest)
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$file 
fopen"my-file.raw""rb" );

while ( !
feof($file) ) {
    
$chunk fread$file1024*16 );
    echo 
$chunk;
    
ob_flush();
    
flush();
}

fclose$file );
?>
Americans think 100 years is a long time,
Europeans think 100 miles is a long way.
pi_144799392
quote:
7s.gif Op maandag 22 september 2014 14:52 schreef Aether het volgende:

[..]

Je kunt readfile beter niet voor dit soort situaties gebruiken. De gehele file wordt namelijk ingeladen en daarna pas verzonden. Je zult waarschijnlijk al eerder een ‘out of memory’ krijgen.

Een betere oplossing is om het bestand in kleinere blokken te lezen en deze te verzenden: (niet getest)
[ code verwijderd ]

http://php.net/manual/en/function.readfile.php
quote:
readfile() will not present any memory issues, even when sending large files, on its own. If you encounter an out of memory error ensure that output buffering is off with ob_get_level().
Dit is denk ik een betere optie:
http://stackoverflow.com/(...)rve-a-file-using-php
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 23 september 2014 @ 09:53:40 #22
8130 raptorix
THAI CHARACTER MAITAIKHU
pi_144814841
quote:
0s.gif Op zondag 21 september 2014 12:37 schreef Monolith het volgende:

[..]

Dat is allemaal erg marginaal. Natuurlijk, als je elke keer instances moet gaan maken in je code om een of andere utility method aan te roepen, dan is dat niet heel efficiŽnt, maar dat zijn niet de zaken die doorgaans geheugenproblemen veroorzaken.
True, maar het is meestal ook best practice qua onderhoudbaarheid, met name voor collega developers die niet altijd even bekend zijn met een code base.
pi_144814978
quote:
0s.gif Op dinsdag 23 september 2014 09:53 schreef raptorix het volgende:

[..]

True, maar het is meestal ook best practice qua onderhoudbaarheid, met name voor collega developers die niet altijd even bekend zijn met een code base.
Juist om wat ik al eerder aangaf. Als je static calls gaat doen naar non-static methods dan 'mag' dat in PHP. Bizarre implementatiebeslissing, maar daar staan de PHP devs wel bekend om. :P
Wat je dan inderdaad gaat krijgen is dat je wellicht in je project op bepaalde plekken static calls doet naar een method die niet als static is gedeclareerd. Vervolgens moet een andere developer de oorspronkelijke class aanpassen en doet dat door een instance variabele te gebruiken in die methode of een call naar een andere non-static method.

Dat lijkt wellicht allemaal niet zo erg bij kleinschalige projectjes waar mensen individueel aan werken, maar bij grotere projecten wordt dat een enorm probleem. Zeker omdat PHP voor dit soort dingen ook geen compile time errors / warnings heeft. Het wordt immers niet gecompiled. Dus dan moet je maar hopen dat dit soort zaken heel erg goed zijn afgevangen met unit tests.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  dinsdag 23 september 2014 @ 11:10:50 #24
12221 Tijn
Powered by MS Paint
pi_144816597
quote:
0s.gif Op dinsdag 23 september 2014 10:00 schreef Monolith het volgende:

[..]

Juist om wat ik al eerder aangaf. Als je static calls gaat doen naar non-static methods dan 'mag' dat in PHP.
Die warnings stuurt PHP niet voor niks, he.
pi_144817992
quote:
2s.gif Op dinsdag 23 september 2014 11:10 schreef Tijn het volgende:

[..]

Die warnings stuurt PHP niet voor niks, he.
Dat weet ik, maar het zou Łberhaupt niet toegestaan mogen zijn. Het zou moeten resulteren in een fatal error.
Nu werkt het nog ook, zolang je geen non-static handelingen uitvoert in de methode. Dat is vragen om toekomstige bugs.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  dinsdag 23 september 2014 @ 12:00:21 #26
12221 Tijn
Powered by MS Paint
pi_144818136
quote:
0s.gif Op dinsdag 23 september 2014 11:54 schreef Monolith het volgende:

[..]

Dat weet ik, maar het zou Łberhaupt niet toegestaan mogen zijn. Het zou moeten resulteren in een fatal error.
Mja, het probleem is dan (zoals zo vaak met PHP) dat een hoop oude applicaties instorten :+
pi_144818722
quote:
2s.gif Op dinsdag 23 september 2014 12:00 schreef Tijn het volgende:

[..]

Mja, het probleem is dan (zoals zo vaak met PHP) dat een hoop oude applicaties instorten :+
Pech. Dat is meer werk voor ons. :7
pi_144818726
quote:
2s.gif Op dinsdag 23 september 2014 12:00 schreef Tijn het volgende:

[..]

Mja, het probleem is dan (zoals zo vaak met PHP) dat een hoop oude applicaties instorten :+
Ja ik weet dat backwards compatibility de reden is, maar je moet ook ergens een keer een streep trekken. Het probleem is natuurlijk dat ze het OO aspect van de taal later hebben geÔntroduceerd en pas redelijk volledig vanaf PHP 5. PHP 4 is weliswaar 'OO', maar miste nog basale zaken als access modifiers.
Daarbij is backwards compatibility wel leuk, maar bij enige doorontwikkeling loop je weer tegen de issues aan die ik eerder al beschreeft. Het enige nut van die backwards compatibility is dus eigenlijk het neerzetten van een applicatie die je nooit meer wilt aanraken.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144820728
Het zou wat mij betreft helemaal niet gek zijn als ze eens flink gaan snijden/refactoren in de functienamen. Alles wat je weg wilt gooien gewoon per direct deprecaten en over 1 of 2 versies weggooien. Eventueel de laatste versie vůůr de grote schoonmaak LTS maken voor de compatibility.
pi_144825612
quote:
14s.gif Op dinsdag 23 september 2014 13:28 schreef KomtTijd... het volgende:
Het zou wat mij betreft helemaal niet gek zijn als ze eens flink gaan snijden/refactoren in de functienamen. Alles wat je weg wilt gooien gewoon per direct deprecaten en over 1 of 2 versies weggooien. Eventueel de laatste versie vůůr de grote schoonmaak LTS maken voor de compatibility.
Wat dat betreft was PHP Reboot wel een aardig initiatief. Jammer dat het nooit is doorgezet.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144854773
Symfony2'ers:

Ik heb een entity ("Ticket") met een one-to-many relation naar de entity Comment. Kortom een ticket kan meerdere comments hebben. Als ik een ticket opvraag worden de comments hierbij weergegeven.

Een comment kan 'deleted' zijn, dan wil ik deze niet meer weergeven bij de ticket waar hij aan gekoppeld is. Ik wil 'm echter ook niet removen voor het geval hij weer teruggeplaatst wordt.

Hoe krijg ik dat voor elkaar? :{ Ik had mijn hoop gevestigd op het toevoegen van doctrine criteria aan de getComments() functie van de Ticket entity, maar dat helpt niet.
pi_144855450
quote:
14s.gif Op woensdag 24 september 2014 14:43 schreef KomtTijd... het volgende:
Symfony2'ers:

Ik heb een entity ("Ticket") met een one-to-many relation naar de entity Comment. Kortom een ticket kan meerdere comments hebben. Als ik een ticket opvraag worden de comments hierbij weergegeven.

Een comment kan 'deleted' zijn, dan wil ik deze niet meer weergeven bij de ticket waar hij aan gekoppeld is. Ik wil 'm echter ook niet removen voor het geval hij weer teruggeplaatst wordt.

Hoe krijg ik dat voor elkaar? :{ Ik had mijn hoop gevestigd op het toevoegen van doctrine criteria aan de getComments() functie van de Ticket entity, maar dat helpt niet.
Op zo'n manier? http://doctrine-orm.readt(...)iltering-collections
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_144855604
Had gehoopt zoiets te kunnen doen ja
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
#Ticket entity
    
public function getComments()
    {
        
$criteria Criteria::create()
            ->
where(Criteria::expr()->eq("deleted"false));
        return 
$this->comments->matching($criteria);
    }
    public function 
getAllComments()
    {
        return 
$this->comments;
    }
?>

maar als ik in de controller de ticket aanroep, wordt die getComments functie helemaal niet aangeroepen.
1
2
3
4
5
<?php
        $ticket 
$this->getDoctrine()
            ->
getRepository('TicketBundle:Ticket')
            ->
find($id);
?>
pi_144855702
quote:
14s.gif Op woensdag 24 september 2014 15:03 schreef KomtTijd... het volgende:
Had gehoopt zoiets te kunnen doen ja
[ code verwijderd ]

maar als ik in de controller de ticket aanroep, wordt die getComments functie helemaal niet aangeroepen.
[ code verwijderd ]

Ik ken Symphony en Doctrine niet genoeg om je daar antwoord op te kunnen geven, maar dit soort dingen kun je vaak het best even debuggen middels een fatsoenlijke IDE en in het geval van PHP iets van Xdebug ofzo.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144857339
Krijg nou tieten, als je HTML aanroept ipv JSON werkt die criteria wel. Af en toe word ik moe van die FOSRestBundle.

[ Bericht 0% gewijzigd door KomtTijd... op 24-09-2014 16:03:37 ]
  woensdag 24 september 2014 @ 23:59:38 #36
118585 Crutch
Filantroop || Taalzwengel
pi_144879541
quote:
15s.gif Op woensdag 24 september 2014 15:48 schreef KomtTijd... het volgende:
Krijg nou tieten, als je HTML aanroept ipv JSON werkt die criteria wel. Af en toe word ik moe van die FOSRestBundle.
Vage shit.
Met html aanroepen, wat bedoel je daarmee? Vanuit Twig misschien? Want dan wordt de getComments() wel degelijk aangeroepen:
1
2
3
4
5
<?php
{% for comment in ticket.comments %}
// dingen
{% endfor %}
?>


Krijg je Łberhaupt comments in je JSON terug?
Je moeder is een hamster
pi_144879894
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
  donderdag 25 september 2014 @ 00:15:35 #38
118585 Crutch
Filantroop || Taalzwengel
pi_144880080
quote:
14s.gif Op donderdag 25 september 2014 00:09 schreef KomtTijd... het volgende:
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
Dan zou ik gewoon zelf een foreach in getComments doen. Is waarschijnlijk nog sneller dan die Criteria.
Je moeder is een hamster
pi_144880187
quote:
14s.gif Op donderdag 25 september 2014 00:09 schreef KomtTijd... het volgende:
Ja de HTML gaat via een twig template. Maar dat boeit me niet, 't gaat om de JSON. En ja, krijg wel comments terug in de JSON maar gewoon allemaal dus.
Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  donderdag 25 september 2014 @ 00:21:58 #40
118585 Crutch
Filantroop || Taalzwengel
pi_144880255
quote:
1s.gif Op donderdag 25 september 2014 00:19 schreef Monolith het volgende:

[..]

Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
Dan zou je kunnen proberen om $comments protected of private te maken, wellicht dat er dan wordt gekeken naar een getter.
Je moeder is een hamster
pi_144880350
Good thinking. $comments is al protected en had ik ook al private gemaakt bij wijze van test, haalde niets uit.

Maar ik denk wel dat ik het in deze hoek moet zoeken. De JSON wordt geproduceerd door de JSMSerializer bundle en die kun je weer beinvloeden door annotations bij, jawel, de variables zelf. Niet de getter/setter functies.

:O morgen maar eens naar kijken ofzo. Ik lijk wel gek, hier om half 1 's nachts nog over nadenken :')
pi_144880445
1
2
3
4
5
6
7
8
<?php
    
/**
     * @ORM\OneToMany(targetEntity="Comment", mappedBy="ticket", cascade={"persist"})
     * @serializer\Groups({"ticketDetails"})
     * @serializer\Accessor(getter="getComments") <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
     */
    
protected $comments;
?>
there, fixed it. Iets met ballmer peak ofzo. Thnx allemaal!
pi_144880468
Daarom, nogmaals, leer gebruik maken van een debugger. Ik weet dat het in de PHP wereld niet gebruikelijk is, maar het maakt je leven zoveel makkelijker. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144880572
It's not a bug, it's a feature, mate!

De profiler laat (liet) me keurig zien dat de uitgevoerde queries verschillend zijn, maar waarům dan, dat mag je meestal zelf uitvinden.
  donderdag 25 september 2014 @ 00:36:41 #45
118585 Crutch
Filantroop || Taalzwengel
pi_144880665
quote:
14s.gif Op donderdag 25 september 2014 00:25 schreef KomtTijd... het volgende:
Good thinking. $comments is al protected en had ik ook al private gemaakt bij wijze van test, haalde niets uit.

Maar ik denk wel dat ik het in deze hoek moet zoeken. De JSON wordt geproduceerd door de JSMSerializer bundle en die kun je weer beinvloeden door annotations bij, jawel, de variables zelf. Niet de getter/setter functies.

:O morgen maar eens naar kijken ofzo. Ik lijk wel gek, hier om half 1 's nachts nog over nadenken :')
Haha, ik wilde nog zeggen, als ze JMS gebruiken, kijk dan even in de docs bij annotations. :')
Je moeder is een hamster
pi_144880729
quote:
14s.gif Op donderdag 25 september 2014 00:32 schreef KomtTijd... het volgende:
It's not a bug, it's a feature, mate!

De profiler laat (liet) me keurig zien dat de uitgevoerde queries verschillend zijn, maar waarům dan, dat mag je meestal zelf uitvinden.
Dat bedoel ik ook met een debugger. Daarmee loop je stap voor stap door je code.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144880895
quote:
1s.gif Op donderdag 25 september 2014 00:19 schreef Monolith het volgende:

[..]

Zoals ik het zie gebruikt Twig een concept analoog aan JavaBeans. D.w.z. als je ticket.comments gebruikt wordt eigenlijk getComments aangeroepen. Is het bij de JSON dan niet zo dat er rechtstreeks een comments field wordt gepakt ipv dat de getComments methode wordt aangeroepen?
Twig kijkt eerst of het een public property is, dan of het een public method is, daarna of er een public method get... is, vervolgens of er een public method is... bestaat en tenslotte of er een public method has... bestaat. De eerste die werkt, wordt gebruikt (en dan wordt de rest uiteraard niet meer gecontroleerd).
pi_144880932
quote:
0s.gif Op donderdag 25 september 2014 00:47 schreef Light het volgende:

[..]

Twig kijkt eerst of het een public property is, dan of het een public method is, daarna of er een public method get... is, vervolgens of er een public method is... bestaat en tenslotte of er een public method has... bestaat. De eerste die werkt, wordt gebruikt (en dan wordt de rest uiteraard niet meer gecontroleerd).
Dat verklaart in dezen dan waarom het daar wel werkte. Het field was namelijk protected. ;)

En dit is dus overigens weer een prima voorbeeld van het feit dat encapsulation een belangrijk OO concept is. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144883407
quote:
0s.gif Op donderdag 25 september 2014 00:29 schreef Monolith het volgende:
Daarom, nogmaals, leer gebruik maken van een debugger. Ik weet dat het in de PHP wereld niet gebruikelijk is, maar het maakt je leven zoveel makkelijker. :P
Xdebug werkt inderdaad prima. :)
pi_144883465
Sowieso vind ik Netbeans een prima IDE voor PHP. Goede autocompletion, je wordt gewaarschuwd als je code niet aan bepaalde conventies doet, je methoden of classes te groot zijn etc.
  donderdag 25 september 2014 @ 09:47:15 #51
305897 remi1986
This MF is infected by madness
pi_144884100
quote:
1s.gif Op donderdag 25 september 2014 09:17 schreef robin007bond het volgende:
Sowieso vind ik Netbeans een prima IDE voor PHP. Goede autocompletion, je wordt gewaarschuwd als je code niet aan bepaalde conventies doet, je methoden of classes te groot zijn etc.
Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
pi_144884710
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
Ik hoor wel goeie verhalen over PHPStorm. Van dezelfde makers (en ik geloof zelfs afgeleid van) IntelliJ, wat in mijn ogen veruit de beste Java IDE is.
Kost je (of bij voorkeur je baas :P ) wel §180 euro, maar dan heb je ook wat.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  donderdag 25 september 2014 @ 10:19:20 #53
355592 Djurres
Knowledge, Fuck it.
pi_144884785
Ik gebruik phpstorm, weliswaar een beetje illegaal maar werkt echt fantastisch :)
Tadumtiedum.
pi_144885236
quote:
0s.gif Op donderdag 25 september 2014 10:19 schreef Djurres het volgende:
Ik gebruik phpstorm, weliswaar een beetje illegaal maar werkt echt fantastisch :)
Die schijnt inderdaad ook erg goed te zijn.
pi_144885562
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
Heeft PHPDesigner FTP mogelijkheden?
  donderdag 25 september 2014 @ 13:02:20 #56
305897 remi1986
This MF is infected by madness
pi_144889211
quote:
0s.gif Op donderdag 25 september 2014 10:50 schreef Pakspul het volgende:

[..]

Heeft PHPDesigner FTP mogelijkheden?
uiteraard... ook svn, github en al die zooi ...
pi_144889578
quote:
0s.gif Op donderdag 25 september 2014 10:16 schreef Monolith het volgende:

[..]

Ik hoor wel goeie verhalen over PHPStorm. Van dezelfde makers (en ik geloof zelfs afgeleid van) IntelliJ, wat in mijn ogen veruit de beste Java IDE is.
Kost je (of bij voorkeur je baas :P ) wel §180 euro, maar dan heb je ook wat.
Een personal license is "maar" 90 euro.

En idd bij voorkeur declareer je die bij je baas ^O^ Ik weet niet meer hoe ik ooit zonder PHPStorm heb gekund.
pi_144889637
quote:
0s.gif Op donderdag 25 september 2014 09:47 schreef remi1986 het volgende:

[..]

Netbeans draait op JAVA, onnodig zwaar/groot. Ik gebruik al jaren PHPDesigner (iets van 23MB) en heeft alles wat je nodig hebt en is lekker licht.
quote:
System Requirements

Windows
:?
  donderdag 25 september 2014 @ 13:17:15 #59
305897 remi1986
This MF is infected by madness
pi_144889661
quote:
5s.gif Op donderdag 25 september 2014 13:16 schreef KomtTijd... het volgende:

[..]

[..]

:?
wat is er?
pi_144889779
Ik snap niet wat je met een PHP-IDE moet die alleen op windows draait.

Maar ik snap ook dat dat misschien een beetje persoonlijk is ;)
  donderdag 25 september 2014 @ 13:31:33 #61
305897 remi1986
This MF is infected by madness
pi_144890177
quote:
14s.gif Op donderdag 25 september 2014 13:20 schreef KomtTijd... het volgende:
Ik snap niet wat je met een PHP-IDE moet die alleen op windows draait.

Maar ik snap ook dat dat misschien een beetje persoonlijk is ;)
naja heel simpel. Ik gebruik alleen Windows. Is wat ik al zei lekker licht en heeft alles wat ik nodig heb.

Als ik op een server wat moet aanpassen kan ik prima uit de voeten met VIM
pi_144890257
Hallo :W

* hier ook even gezellig bij komt
pi_144890389
quote:
0s.gif Op donderdag 25 september 2014 13:31 schreef remi1986 het volgende:

[..]

naja heel simpel. Ik gebruik alleen Windows. Is wat ik al zei lekker licht en heeft alles wat ik nodig heb.

Als ik op een server wat moet aanpassen kan ik prima uit de voeten met VIM
Voor simpel gebruik kun je inderdaad beter zo'n lichtgewicht ding gebruiken.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  donderdag 25 september 2014 @ 17:43:06 #64
355592 Djurres
Knowledge, Fuck it.
pi_144897996
PHPStorm werkt heerlijk met FTP, ik heb nl geen local servertje op men pc omdat ik gewoon online een test-environment heb. Alles wat ik typ gaat direct naar de server toe, en word op mn pc opgeslagen.

Auto-filling werkt ook erg goed, en bij het aanmaken van nieuwe classes e.d worden automatisch benodigde namespaces ingevuld, en als er iets ge-extend moet worden geeft ie dit ook gewoon aan.

Ben wel een noob met php, maar waar voor ik het gebruik is t ideaal :)
Tadumtiedum.
pi_144900352
quote:
14s.gif Op donderdag 25 september 2014 13:14 schreef KomtTijd... het volgende:

[..]

Een personal license is "maar" 90 euro.

En idd bij voorkeur declareer je die bij je baas ^O^ Ik weet niet meer hoe ik ooit zonder PHPStorm heb gekund.
Het verlengen van een personal license is maar iets van 44 euro.

Overigens mag je volgens de licentievoorwaarden zo'n personal license niet declareren.
pi_144900449
Oh, zie het nu ook ja. Naja mijn nederige excuses bij deze.
pi_144900539
quote:
0s.gif Op donderdag 25 september 2014 19:11 schreef Light het volgende:

[..]

Het verlengen van een personal license is maar iets van 44 euro.

Overigens mag je volgens de licentievoorwaarden zo'n personal license niet declareren.
Dat kan nooit rechtsgeldig zijn. Of anders gezegd: al helemaal niet te enforcen.
In theory there is no difference between theory and practice. In practice there is.
pi_144900621
quote:
0s.gif Op donderdag 25 september 2014 19:11 schreef Light het volgende:

[..]

Het verlengen van een personal license is maar iets van 44 euro.

Overigens mag je volgens de licentievoorwaarden zo'n personal license niet declareren.
Oh dat zal dan bij IntelliJ ook wel niet mogen, maar toch doet iedereen bij ons dat. Daar is het bovendien iets van 500 voor de bedrijfslicentie en 240 voor de persoonlijke licentie.
Ze gaan er toch nooit achter komen natuurlijk.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144903827
quote:
1s.gif Op donderdag 25 september 2014 19:18 schreef Monolith het volgende:

[..]

Oh dat zal dan bij IntelliJ ook wel niet mogen, maar toch doet iedereen bij ons dat. Daar is het bovendien iets van 500 voor de bedrijfslicentie en 240 voor de persoonlijke licentie.
Ze gaan er toch nooit achter komen natuurlijk.
Pittig prijsverschil.
pi_144905682
Los van het prijsverschil was voor mij een personal license sowieso praktischer, die kan ik tenminste thuis gebruiken. En mijn werkgever gaat de licentie toch niet overdragen aan collega's ofzo.
pi_144905876
quote:
14s.gif Op donderdag 25 september 2014 21:30 schreef KomtTijd... het volgende:
Los van het prijsverschil was voor mij een personal license sowieso praktischer, die kan ik tenminste thuis gebruiken. En mijn werkgever gaat de licentie toch niet overdragen aan collega's ofzo.
Het is voor jou altijd gunstiger, want hij is van jou en niet van je werkgever. Als je dus weggaat, dan heb je mooi nog een licentie voor jezelf. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144912843
quote:
1s.gif Op donderdag 25 september 2014 21:35 schreef Monolith het volgende:

[..]

Het is voor jou altijd gunstiger, want hij is van jou en niet van je werkgever. Als je dus weggaat, dan heb je mooi nog een licentie voor jezelf. :P
:D
pi_144913204
quote:
1s.gif Op donderdag 25 september 2014 19:16 schreef slacker_nl het volgende:

[..]

Dat kan nooit rechtsgeldig zijn. Of anders gezegd: al helemaal niet te enforcen.
Enforcen is wel lastig, da's waar.
pi_144913882
quote:
1s.gif Op donderdag 25 september 2014 21:35 schreef Monolith het volgende:

[..]

Het is voor jou altijd gunstiger, want hij is van jou en niet van je werkgever. Als je dus weggaat, dan heb je mooi nog een licentie voor jezelf. :P
6.gif.
Maar voor de baas is het ook beter dat ik thuis af en toe wat kan doen.
  vrijdag 26 september 2014 @ 01:27:29 #75
118585 Crutch
Filantroop || Taalzwengel
pi_144914045
PHPStorm is tot nu toe de beste IDE.
En inderdaad, ik snap niet wat ik zonder PS heb gekund. :')
Je moeder is een hamster
pi_144914938
quote:
0s.gif Op vrijdag 26 september 2014 00:32 schreef Light het volgende:

[..]

Enforcen is wel lastig, da's waar.
Hoe dan ook vind ik het een lastige licentievoorwaarde. Je kan mensen niet verbieden iets niet door de baas te laten aanschaffen. En al helemaal niet via licentievoorwaarden.

Beetje als zeggen, je mag de software alleen voor goede doelen gebruiken. Madness.
In theory there is no difference between theory and practice. In practice there is.
pi_144917996
quote:
1s.gif Op vrijdag 26 september 2014 06:32 schreef slacker_nl het volgende:

[..]

Hoe dan ook vind ik het een lastige licentievoorwaarde. Je kan mensen niet verbieden iets niet door de baas te laten aanschaffen. En al helemaal niet via licentievoorwaarden.
Ze hebben natuurlijk wel wat meer dan alleen die voorwaarden. Een personal license koop je als privťpersoon, dus kun je geen bedrijfsnaam opgeven en komt de licentie op naam van de persoon. Bij een commercial license moet je wel een bedrijfsnaam opgeven en komt de licentie op naam van het bedrijf. Dan is het aan het bedrijf om te bepalen wie met de licentie mag werken.
pi_144919146
quote:
0s.gif Op vrijdag 26 september 2014 01:27 schreef Crutch het volgende:
PHPStorm is tot nu toe de beste IDE.
En inderdaad, ik snap niet wat ik zonder PS heb gekund. :')
Dat is altijd het geval met een goede IDE natuurlijk. Je weet pas wat je mist, wanneer je er daadwerkelijk mee gewerkt hebt. ;)
Ik heb ook nog wel met pure text-editors (al dan niet met wat syntax highlighting) gewerkt. Alleen al basale ondersteuning voor zaken als error highlighting, code completion, code generation en refactoring zorgt er al voor dat je productiviteit een veelvoud is van je productiviteit zonder al die hulpmiddelen.

De IDE's van JetBrains hebben die functionaliteit bovendien echt heel goed uitgewerkt, met support voor enorm veel verschillende frameworks, al dan niet via plug-ins.
Daarbij hebben ze dan ook nog eens live templates. Als je daar een beetje handig mee wordt, dan levert dat ook weer eens een flinke snelheidswinst op.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_144926250
quote:
0s.gif Op vrijdag 26 september 2014 10:36 schreef Light het volgende:

[..]

Ze hebben natuurlijk wel wat meer dan alleen die voorwaarden. Een personal license koop je als privťpersoon, dus kun je geen bedrijfsnaam opgeven en komt de licentie op naam van de persoon. Bij een commercial license moet je wel een bedrijfsnaam opgeven en komt de licentie op naam van het bedrijf. Dan is het aan het bedrijf om te bepalen wie met de licentie mag werken.
Maar als ik iets declareer heb ik het gekocht en leg ik de bon bij de baas neer en krijg dat dan later terug. Ik kan dan alsnog een persoonlijke licentie nemen...
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 26 september 2014 @ 20:57:47 #80
118585 Crutch
Filantroop || Taalzwengel
pi_144936380
quote:
0s.gif Op vrijdag 26 september 2014 11:20 schreef Monolith het volgende:

[..]

Dat is altijd het geval met een goede IDE natuurlijk. Je weet pas wat je mist, wanneer je er daadwerkelijk mee gewerkt hebt. ;)
Ik heb ook nog wel met pure text-editors (al dan niet met wat syntax highlighting) gewerkt. Alleen al basale ondersteuning voor zaken als error highlighting, code completion, code generation en refactoring zorgt er al voor dat je productiviteit een veelvoud is van je productiviteit zonder al die hulpmiddelen.

De IDE's van JetBrains hebben die functionaliteit bovendien echt heel goed uitgewerkt, met support voor enorm veel verschillende frameworks, al dan niet via plug-ins.
Daarbij hebben ze dan ook nog eens live templates. Als je daar een beetje handig mee wordt, dan levert dat ook weer eens een flinke snelheidswinst op.
Emmet FTW _O_
Je moeder is een hamster
pi_144937361
quote:
0s.gif Op vrijdag 26 september 2014 20:57 schreef Crutch het volgende:

[..]

Emmet FTW _O_
Leuk bedacht en heeft zeker zijn toepassingen, maar het gros van de afkortingen biedt niet echt voordelen te opzichte van code completion in IDEs. De multiplications zijn nog wel aardig efficiŽnt, maar juist dat soort dingen zijn vaak dynamisch en niet statisch.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 26 september 2014 @ 21:52:47 #82
118585 Crutch
Filantroop || Taalzwengel
pi_144939310
quote:
1s.gif Op vrijdag 26 september 2014 21:18 schreef Monolith het volgende:

[..]

Leuk bedacht en heeft zeker zijn toepassingen, maar het gros van de afkortingen biedt niet echt voordelen te opzichte van code completion in IDEs. De multiplications zijn nog wel aardig efficiŽnt, maar juist dat soort dingen zijn vaak dynamisch en niet statisch.
Ik type nauwelijks nog volledige (s)css:

w100% {tab} -> width: 100%
bgc {tab} -> background-color:
fl {tab} -> float: left

HTML-tags:
type gewoon de tag-naam gevolgd door tab en je hebt bijvoorbeeld:
<div></div> met de cursor in het midden om direct je content in te rammen.

Of div.wrapper {tab} -> <div class="wrapper"></div>

Of een simpele pubsf in PHP en je krijgt public static function()

Het houdt niet op hoor, ik heb mijn ziel verkocht aan Emmet.
Je moeder is een hamster
  vrijdag 26 september 2014 @ 21:54:14 #83
118585 Crutch
Filantroop || Taalzwengel
pi_144939381
Oeh en die multicursor die ze van Sublime Text hebben gejat, awesome! :D

Je moeder is een hamster
pi_144939811
quote:
0s.gif Op vrijdag 26 september 2014 21:52 schreef Crutch het volgende:

[..]

Ik type nauwelijks nog volledige (s)css:

w100% {tab} -> width: 100%
bgc {tab} -> background-color:
fl {tab} -> float: left

HTML-tags:
type gewoon de tag-naam gevolgd door tab en je hebt bijvoorbeeld:
<div></div> met de cursor in het midden om direct je content in te rammen.

Of div.wrapper {tab} -> <div class="wrapper"></div>

Of een simpele pubsf in PHP en je krijgt public static function()

Het houdt niet op hoor, ik heb mijn ziel verkocht aan Emmet.
Met name die eerste paar zijn nou precies de voorbeelden die ik bedoel die een IDE al wel voor je afvangt middels intelligente code completion.

Dingen als .wrapper zijn dan inderdaad wel weer handig.

Die laatste is net zoiets als live templates, echter hebben die nog veel meer mogelijkheden om variabele elementen te gebruiken, die de IDE dan on the fly probeert in te vullen in de gegenereerde code.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  dinsdag 30 september 2014 @ 08:41:30 #85
91039 mstx
2x1/2 = 1/2 x 1/2
pi_145043680
Zo irritant he, als een collega gewoon alles klakkeloos doet wat een klant (die geen verstand van databases heeft) zegt. Nu moet ik dus werken in een project waar tabellen gejoind worden op objectnamen ipv de id's. En index is schijnbaar ook een onbekend woord. :'(
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_145043939
quote:
0s.gif Op dinsdag 30 september 2014 08:41 schreef mstx het volgende:
Zo irritant he, als een collega gewoon alles klakkeloos doet wat een klant (die geen verstand van databases heeft) zegt. Nu moet ik dus werken in een project waar tabellen gejoind worden op objectnamen ipv de id's. En index is schijnbaar ook een onbekend woord. :'(
:'(
  dinsdag 30 september 2014 @ 10:17:00 #87
230788 n8n
Pragmatisch
pi_145045716
quote:
0s.gif Op dinsdag 30 september 2014 08:41 schreef mstx het volgende:
Zo irritant he, als een collega gewoon alles klakkeloos doet wat een klant (die geen verstand van databases heeft) zegt. Nu moet ik dus werken in een project waar tabellen gejoind worden op objectnamen ipv de id's. En index is schijnbaar ook een onbekend woord. :'(
sowieso mensen die overal ja op zeggen zonder ooit na te denken over de implicaties. Na 3 weken komt iedereen er achter dat het toch niet kan en daar sta je dan met je begroting. :')
Specialization is for insects”.—Robert Heinlein
pi_145045928
quote:
0s.gif Op dinsdag 30 september 2014 08:41 schreef mstx het volgende:
Zo irritant he, als een collega gewoon alles klakkeloos doet wat een klant (die geen verstand van databases heeft) zegt. Nu moet ik dus werken in een project waar tabellen gejoind worden op objectnamen ipv de id's. En index is schijnbaar ook een onbekend woord. :'(
Indices kun je gewoon toevoegen natuurlijk. ;)
Maar wat hebben de wensen van een klant in vredesnaam te maken met hoe jullie database tables joinen? Ik kan me voorstellen dat je door wensen van de klant in combinatie met tijdsdruk (en vaak een gebrek aan kennis) dat soort oplossingen gaat krijgen, maar het lijkt me toch niet dat de klant er specifiek om vraagt.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_145068074
Ik moet de laatste tijd een beetje vaak denken aan deze draad doordat ik de complete mailermeuk op m'n werk aan het aanpassen ben. Zo testen wij nu het versturen van mail:

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
sub external_mail_track_sending_bcc : Tests {
    my $params = {
        to      => '[email protected]',
        from    => '[email protected]',
        cc      => '[email protected]',
        bcc     => '[email protected]',
        subject => "Hide 'n seek",
    };

    my $obj = _mail_track_ok;

    my $msg = $obj->prepare({ %$params, Body => 'This is some content', });
    my $message;
    my $opts;

    no warnings qw(redefine once);
    local *Email::Sender::Simple::send = sub {
        my $self = shift;
        my $entity = shift;
        $opts = shift;
        $message = $entity->stringify();
    };
    $msg->send;
    isa_ok(delete $opts->{transport}, "Email::Sender::Transport::SMTP");
    is_deeply($opts, { to => $params->{bcc} }, "BCC'ed");
    ok($message, 'Sending e-mail');
}

Jullie mogen de code zien aangezien het toch een open source project is
In theory there is no difference between theory and practice. In practice there is.
  donderdag 2 oktober 2014 @ 09:16:36 #90
6897 Chandler
prof. dislecticus
pi_145117526
Kan iemand me helpen, ik krijg steeds een error als ik mysql opstart..

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
2014-10-02 09:13:17 6048 [Note] Plugin 'FEDERATED' is disabled.
2014-10-02 09:13:17 6048 [Note] InnoDB: The InnoDB memory heap is disabled
2014-10-02 09:13:17 6048 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-10-02 09:13:17 6048 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-10-02 09:13:17 6048 [Note] InnoDB: Not using CPU crc32 instructions
2014-10-02 09:13:17 6048 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-10-02 09:13:17 6048 [Note] InnoDB: Completed initialization of buffer pool
2014-10-02 09:13:17 6048 [Note] InnoDB: Highest supported file format is Barracuda.
2014-10-02 09:13:18 6048 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 49463 in the ib_logfiles!
2014-10-02 09:13:18 6048 [Note] InnoDB: Database was not shutdown normally!
2014-10-02 09:13:18 6048 [Note] InnoDB: Starting crash recovery.
2014-10-02 09:13:18 6048 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-10-02 09:13:18 6048 [Note] InnoDB: Restoring possible half-written data pages 
2014-10-02 09:13:18 6048 [Note] InnoDB: from the doublewrite buffer...
2014-10-02 09:13:18 6048 [Warning] InnoDB: Creating foreign key constraint system tables.
2014-10-02 09:13:18 6048 [ERROR] InnoDB: Creation of SYS_FOREIGN and SYS_FOREIGN_COLS has failed with error 57.  Tablespace is full. Dropping incompletely created tables.
2014-10-02 09:13:18 11d4  InnoDB: Error: table "SYS_FOREIGN" does not exist in the InnoDB internal
InnoDB: data dictionary though MySQL is trying to drop it.
InnoDB: Have you copied the .frm file of the table to the
InnoDB: MySQL database directory from another database?
InnoDB: You can look for further help from
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html
2014-10-02 09:13:18 11d4  InnoDB: Error: table "SYS_FOREIGN_COLS" does not exist in the InnoDB internal
InnoDB: data dictionary though MySQL is trying to drop it.
InnoDB: Have you copied the .frm file of the table to the
InnoDB: MySQL database directory from another database?
InnoDB: You can look for further help from
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html
2014-10-02 09:13:18 11d4  InnoDB: Assertion failure in thread 4564 in file dict0crea.cc line 1445
InnoDB: Failing assertion: sys_foreign_err == DB_SUCCESS
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
07:13:18 UTC - mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 67589 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
13657d0    mysqld_usbwv8.exe!my_thread_name()
159dd9d    mysqld_usbwv8.exe!my_mb_ctype_mb()
1395a4a    mysqld_usbwv8.exe!xor_string()
11197f0    [email protected]@[email protected]@@Z()
1152e0e    [email protected]@[email protected]@[email protected]@[email protected]@[email protected]()
1157454    [email protected]@[email protected]()
111102d    [email protected]@YAHXZ()
1111d23    [email protected]@[email protected]()
1112287    [email protected]@[email protected]()
15988fa    mysqld_usbwv8.exe!my_mb_ctype_mb()
75fb338a    kernel32.dll!BaseThreadInitThunk()
77df9f72    ntdll.dll!RtlInitializeExceptionChain()
77df9f45    ntdll.dll!RtlInitializeExceptionChain()
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash. 

Ik kan dus echt niet achterhalen wat het probleem is... :'( iemand die het mogelijk ziet? heb zo'n 300 databases en stuk voor stuk terug zetten is ook wel weer vervelend...
taal voutjes zijn onderdel van mijn leeven.
up up down down left right left right B A en dan heb je courier!!!! grrr
pi_145118002
Hoe ver ben je zelf al? privileges en disk space al gechecked enzo?
  donderdag 2 oktober 2014 @ 10:26:37 #92
6897 Chandler
prof. dislecticus
pi_145118901
Maar natuurlijk heb ik dat gechecked, draaide namelijk normaal wel.
100GB ruimte vrij ;)
Run als admin ;)

Het moet ergens in de tabellen zitten, daar crasht hij op, maar welke is niet duidelijk, en uitzoeken is best vervelend. Is er geen tool die de database bestanden zonder mysql server kan controleren?
taal voutjes zijn onderdel van mijn leeven.
up up down down left right left right B A en dan heb je courier!!!! grrr
pi_145119636
Niet toevallig een limiet op je innodb_data_file_path in je my.cnf?
  donderdag 2 oktober 2014 @ 20:04:51 #94
6897 Chandler
prof. dislecticus
pi_145136869
Nee, het rare is het werkte altijd, ik ben echt bang dat 1 corrupte database / tabel voor gezeur zorgt, ga opzoek naar het probleem!!! :D

lolerdelol heb de originele versie van usbwebserver gedownloaded en daarvan alles uit de data dir van mysql naar mijn data dir gekopieerd, daarna gestart en hoppa werkte gelijk! :) daarna al mijn databases terug gekopieerd en hoppa, werkte weer!

[ Bericht 43% gewijzigd door Chandler op 02-10-2014 20:09:56 ]
taal voutjes zijn onderdel van mijn leeven.
up up down down left right left right B A en dan heb je courier!!!! grrr
pi_145138432
InnoDB tabellen zou je als het goed is niet moeten kunnen kopiŽren door de bestanden in het filesystem te kopiŽren. Althans, misschien kan het goed gaan maar het wordt uitdrukkelijk afgeraden en niet ondersteund.
  vrijdag 3 oktober 2014 @ 17:08:04 #96
62215 qu63
..de tijd drinkt..
pi_145159737
Dummie hier :W

Ben aan t experimenteren met de API van de RDW om alleen een bepaald type voertuig uit hun database te trekken. Dit lukt allemaal prima en opslaan in mijn eigen database ook. Alleen houdt de RDW niet bij wanneer er een record is aangepast. Iedere dag uploaden ze de complete tabel opnieuw. Hoe kan ik nu de ongeveer 10.000 records uit hun API plukken, checken of het kenteken (het enige unieke record) al bestaat en if so, checken of er wijzigingen zijn, en if so de wijzigingen doorvoeren in mijn tabel. Ik kan dan zelf mijn eigen 'updated on' veld wel aanpassen ;)

Iemand tips/trics? Kan dit bijvoorbeeld ook met ON DUPLICATE KEY UPDATE?

-edit- En dan zijn er natuurlijk ook kentekens die uit de databse van de RDW verdwijnen (export, sloop), dan zou ik moeten kijken welke van mijn kentekens niet meer bij de RDW bekend staan, maar met 10.000 records is dat ook best lastig, lijkt me.. Ik heb wel een veld in mijn db voor sloop (ja/nee) en export (ja/nee), dus alleen dat veld aanpassen is voldoende..
It's Time To Shine
What would life be like without rhethorical questions?
pi_145159986
quote:
0s.gif Op vrijdag 3 oktober 2014 17:08 schreef qu63 het volgende:
[...]
Als het kenteken je ID is zou je hier een PRIMARY KEY van kunnen maken anders een UNIQUE KEY.
Je zou een datumveld kunnen toevoegen wanneer een record in jouw database is aangepast. Records die ouder zijn komen dan niet meer voor in die van de RDW. Dit is ook als archief te gebruiken.
Americans think 100 years is a long time,
Europeans think 100 miles is a long way.
  vrijdag 3 oktober 2014 @ 17:24:41 #98
152283 totalvamp
Tell your world!
pi_145160111
quote:
0s.gif Op vrijdag 3 oktober 2014 17:08 schreef qu63 het volgende:
Dummie hier :W

Ben aan t experimenteren met de API van de RDW om alleen een bepaald type voertuig uit hun database te trekken. Dit lukt allemaal prima en opslaan in mijn eigen database ook. Alleen houdt de RDW niet bij wanneer er een record is aangepast. Iedere dag uploaden ze de complete tabel opnieuw. Hoe kan ik nu de ongeveer 10.000 records uit hun API plukken, checken of het kenteken (het enige unieke record) al bestaat en if so, checken of er wijzigingen zijn, en if so de wijzigingen doorvoeren in mijn tabel. Ik kan dan zelf mijn eigen 'updated on' veld wel aanpassen ;)

Iemand tips/trics? Kan dit bijvoorbeeld ook met ON DUPLICATE KEY UPDATE?

-edit- En dan zijn er natuurlijk ook kentekens die uit de databse van de RDW verdwijnen (export, sloop), dan zou ik moeten kijken welke van mijn kentekens niet meer bij de RDW bekend staan, maar met 10.000 records is dat ook best lastig, lijkt me.. Ik heb wel een veld in mijn db voor sloop (ja/nee) en export (ja/nee), dus alleen dat veld aanpassen is voldoende..
Je kunt inderdaad een insert doen met een on duplicate update erin.
Je kunt ook een subquery maken die kijkt of er verschillen zijn, maar lijkt me niet nodig.
Gewoon sowieso alles updaten.

en 10000 records is een peuleschilletje :)
quote:
1s.gif Op vrijdag 3 oktober 2014 17:20 schreef Aether het volgende:

[..]

Als het kenteken je ID is zou je hier een PRIMARY KEY van kunnen maken anders een UNIQUE KEY.
Je zou een datumveld kunnen toevoegen wanneer een record in jouw database is aangepast. Records die ouder zijn komen dan niet meer voor in die van de RDW. Dit is ook als archief te gebruiken.
dit moet sowieso wel :P
pi_145160387
Zoals ik het lees kun je net zo goed de database weer leeg kieperen en de nieuwe data erin zetten.
Of is er specifiek een reden in bestaande database records te behouden?
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 17:37:14 #100
152283 totalvamp
Tell your world!
pi_145160447
quote:
0s.gif Op vrijdag 3 oktober 2014 17:35 schreef Monolith het volgende:
Zoals ik het lees kun je net zo goed de database weer leeg kieperen en de nieuwe data erin zetten.
Of is er specifiek een reden in bestaande database records te behouden?
Hoevaak herlaad jij data per dag dan?

De database leeggooien is geen goed idee, gewoon updaten is het beste.
pi_145160626
quote:
0s.gif Op vrijdag 3 oktober 2014 17:37 schreef totalvamp het volgende:

[..]

Hoevaak herlaad jij data per dag dan?

De database leeggooien is geen goed idee, gewoon updaten is het beste.
Normaal gesproken niet natuurlijk, maar je moet altijd kijken naar de specifieke use case.
Het punt is dat hij elke dag data voor dezelfde set kentekens uit een API trekt. Daarbij moeten dan de verwijderingen, wijzigingen en toevoegingen in hun geheel worden doorgevoerd. Dan is verwijderen en de gehele set opnieuw toevoegen de meest efficiŽnte en makkelijke optie.
Als je die data wilt gaan koppelen ligt dat weer iets anders, maar de use case is niet echt duidelijk.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 17:46:03 #102
152283 totalvamp
Tell your world!
pi_145160705
quote:
1s.gif Op vrijdag 3 oktober 2014 17:43 schreef Monolith het volgende:

[..]

Normaal gesproken niet natuurlijk, maar je moet altijd kijken naar de specifieke use case.
Het punt is dat hij elke dag data voor dezelfde set kentekens uit een API trekt. Daarbij moeten dan de verwijderingen, wijzigingen en toevoegingen in hun geheel worden doorgevoerd. Dan is verwijderen en de gehele set opnieuw toevoegen de meest efficiŽnte en makkelijke optie.
Als je die data wilt gaan koppelen ligt dat weer iets anders, maar de use case is niet echt duidelijk.
Ja alleen als je voorderest geen koppelingen doet in je database kan het :) alhoewel kentekens altijd hetzelfde blijven natuurlijk.

of anders Nosql gebruiken en de letterlijke json er zo in gooien :P
pi_145160754
Bij voorkeur trek je alleen de mutaties uit die API. Want daar ligt je bottleneck in dit scenario natuurlijk.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 17:47:28 #104
62215 qu63
..de tijd drinkt..
pi_145160755
quote:
0s.gif Op vrijdag 3 oktober 2014 17:35 schreef Monolith het volgende:
Zoals ik het lees kun je net zo goed de database weer leeg kieperen en de nieuwe data erin zetten.
Of is er specifiek een reden in bestaande database records te behouden?
Ik heb er andere velden aan toegevoegd die niet in de RDW database staan ;)
It's Time To Shine
What would life be like without rhethorical questions?
  vrijdag 3 oktober 2014 @ 17:48:36 #105
62215 qu63
..de tijd drinkt..
pi_145160788
quote:
0s.gif Op vrijdag 3 oktober 2014 17:47 schreef Monolith het volgende:
Bij voorkeur trek je alleen de mutaties uit die API. Want daar ligt je bottleneck in dit scenario natuurlijk.
Ja, dattum. Ik kan kijken naar de laatste tennaamstellingen, maar daarmee mis ik bijvoorbeeld of een voertuig nog een geldige APK heeft, als gestolen geregistreerd staat, etc.
It's Time To Shine
What would life be like without rhethorical questions?
pi_145160826
quote:
0s.gif Op vrijdag 3 oktober 2014 17:47 schreef qu63 het volgende:

[..]

Ik heb er andere velden aan toegevoegd die niet in de RDW database staan ;)
Zelfs dat zou je nog in een aparte tabel kunnen zetten en koppelen op kenteken.
Dan kun je de RDW data als leidend houden.
Of wil je ook data bewaren / tonen over kentekens die al verwijderd zijn uit de RDW data?
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 17:53:16 #107
62215 qu63
..de tijd drinkt..
pi_145160912
Laat ik iets meer uitleggen over mijn database ;)
SQL dump:
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
CREATE TABLE IF NOT EXISTS `voertuigen` (
  `Updated` int(11) NOT NULL,
  `Aantalcilinders` int(16) NOT NULL,
  `Aantalstaanplaatsen` int(16) NOT NULL,
  `Aantalzitplaatsen` int(16) NOT NULL,
  `Cilinderinhoud` int(16) NOT NULL,
  `Datumaanvangtenaamstelling` int(11) NOT NULL,
  `Datumeersteafgiftenederland` int(11) NOT NULL,
  `Datumeerstetoelating` int(11) NOT NULL,
  `Handelsbenaming` varchar(255) NOT NULL,
  `Hoofdbrandstof` varchar(255) NOT NULL,
  `Kenteken` varchar(10) NOT NULL,
  `Merk` varchar(255) NOT NULL,
  `Milieuclassificatie` varchar(255) NOT NULL,
  `Vervaldatumapk` int(11) NOT NULL,
  `Wachtopkeuren` varchar(255) NOT NULL,
  `Voertuig_ID` int(11) NOT NULL AUTO_INCREMENT,
  `Bedrijf_ID` int(11) NOT NULL,
  `EigenarenP` varchar(255) NOT NULL,
  `EigenarenZ` varchar(255) NOT NULL,
  `Klasse` varchar(255) NOT NULL,
  `Categorie` varchar(255) NOT NULL,
  `CarrosserieOmschrijving` varchar(255) NOT NULL,
  `Type` varchar(255) NOT NULL,
  `Variant` varchar(255) NOT NULL,
  `Uitvoering` varchar(255) NOT NULL,
  `Typegoedkeuring` varchar(255) NOT NULL,
  `VervalDatTachograaf` varchar(255) NOT NULL,
  `TijdAanvangTenaamstelling` varchar(255) NOT NULL,
  `Gestolen` varchar(255) NOT NULL,
  `Geexporteerd` varchar(255) NOT NULL,
  `BijzonderheidTekst` varchar(255) NOT NULL,
  `Lengte` varchar(255) NOT NULL,
  `Breedte` varchar(255) NOT NULL,
  `AantalAssen` varchar(255) NOT NULL,
  `AantalWielen` varchar(255) NOT NULL,
  `Wielbasis` varchar(255) NOT NULL,
  `AfwijkendeMaxSnelheid` varchar(255) NOT NULL,
  `AfstandVoorzijdeVrtgTotHartkoppeling` varchar(255) NOT NULL,
  `WAVerzekerd` varchar(255) NOT NULL,
  PRIMARY KEY (`Voertuig_ID`),
  UNIQUE KEY `Kenteken` (`Kenteken`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9740 ;
Tot en met Wachtopkeuren trek uit de RDW API, de rest wordt via andere wegen aangevuld.
Dan heb ik ook nog een andere tabel die bestaat uit bedrijfsgegevens zodat ik straks per bedrijf kan zien welke voertuigen ze hebben.
It's Time To Shine
What would life be like without rhethorical questions?
  vrijdag 3 oktober 2014 @ 17:54:59 #108
62215 qu63
..de tijd drinkt..
pi_145160955
quote:
1s.gif Op vrijdag 3 oktober 2014 17:43 schreef Monolith het volgende:

[..]

Normaal gesproken niet natuurlijk, maar je moet altijd kijken naar de specifieke use case.
Het punt is dat hij elke dag data voor dezelfde set kentekens uit een API trekt. Daarbij moeten dan de verwijderingen, wijzigingen en toevoegingen in hun geheel worden doorgevoerd. Dan is verwijderen en de gehele set opnieuw toevoegen de meest efficiŽnte en makkelijke optie.
Als je die data wilt gaan koppelen ligt dat weer iets anders, maar de use case is niet echt duidelijk.
Ik zoek niet op kenteken, ik zoek op voertuigtype, dus ik weet nooit vantevoren hoeveel records ik terug ga krijgen. Het kunnen er meer, minder of evenveel zijn als vandaag.
It's Time To Shine
What would life be like without rhethorical questions?
  vrijdag 3 oktober 2014 @ 18:03:31 #109
62215 qu63
..de tijd drinkt..
pi_145161153
quote:
1s.gif Op vrijdag 3 oktober 2014 17:20 schreef Aether het volgende:

[..]

Als het kenteken je ID is zou je hier een PRIMARY KEY van kunnen maken anders een UNIQUE KEY.
Je zou een datumveld kunnen toevoegen wanneer een record in jouw database is aangepast. Records die ouder zijn komen dan niet meer voor in die van de RDW. Dit is ook als archief te gebruiken.
T nadeel is dus dat ik niet weet wanneer de records van de RDW geupdate zijn :{. Ik zou alle 10k records zelf moeten controleren op wijzigingen, en dan pas wel of niet aan mijn database toevoegen.
It's Time To Shine
What would life be like without rhethorical questions?
pi_145161170
quote:
0s.gif Op vrijdag 3 oktober 2014 17:54 schreef qu63 het volgende:

[..]

Ik zoek niet op kenteken, ik zoek op voertuigtype, dus ik weet nooit vantevoren hoeveel records ik terug ga krijgen. Het kunnen er meer, minder of evenveel zijn als vandaag.
Maakt op zich niet zo heel veel uit. Het relevante aspect is dat je de hele dataset via de API opvraagt, niet enkel mutaties bijvoorbeeld.
Wat je dan vervolgens wil, als ik het goed begrijp, is het volgende:

• Voeg rijen toe aan de eigen database voor alle kentekens in de dataset die nog niet in de eigen database stonden
• Verwijder alle rijen uit de eigen database waarbij het kenteken niet voorkomt in de nieuwe dataset
• Update alle informatie voor al bestaande kentekens

Klopt dat?

Zo ja, dan is deze opzet ook een optie:

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
CREATE TABLE IF NOT EXISTS `voertuigen_RDW` (
  `Updated` int(11) NOT NULL,
  `Aantalcilinders` int(16) NOT NULL,
  `Aantalstaanplaatsen` int(16) NOT NULL,
  `Aantalzitplaatsen` int(16) NOT NULL,
  `Cilinderinhoud` int(16) NOT NULL,
  `Datumaanvangtenaamstelling` int(11) NOT NULL,
  `Datumeersteafgiftenederland` int(11) NOT NULL,
  `Datumeerstetoelating` int(11) NOT NULL,
  `Handelsbenaming` varchar(255) NOT NULL,
  `Hoofdbrandstof` varchar(255) NOT NULL,
  `Kenteken` varchar(10) NOT NULL,
  `Merk` varchar(255) NOT NULL,
  `Milieuclassificatie` varchar(255) NOT NULL,
  `Vervaldatumapk` int(11) NOT NULL,
  `Wachtopkeuren` varchar(255) NOT NULL, 
  PRIMARY KEY (`Kenteken`),
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9740 ;

CREATE TABLE IF NOT EXISTS `voertuigen_other` (
 `Voertuig_ID` int(11) NOT NULL AUTO_INCREMENT,
  `Bedrijf_ID` int(11) NOT NULL,
  `EigenarenP` varchar(255) NOT NULL,
  `EigenarenZ` varchar(255) NOT NULL,
  `Klasse` varchar(255) NOT NULL,
  `Categorie` varchar(255) NOT NULL,
  `CarrosserieOmschrijving` varchar(255) NOT NULL,
  `Type` varchar(255) NOT NULL,
  `Variant` varchar(255) NOT NULL,
  `Uitvoering` varchar(255) NOT NULL,
  `Typegoedkeuring` varchar(255) NOT NULL,
  `VervalDatTachograaf` varchar(255) NOT NULL,
  `TijdAanvangTenaamstelling` varchar(255) NOT NULL,
  `Gestolen` varchar(255) NOT NULL,
  `Geexporteerd` varchar(255) NOT NULL,
  `BijzonderheidTekst` varchar(255) NOT NULL,
  `Lengte` varchar(255) NOT NULL,
  `Breedte` varchar(255) NOT NULL,
  `AantalAssen` varchar(255) NOT NULL,
  `AantalWielen` varchar(255) NOT NULL,
  `Wielbasis` varchar(255) NOT NULL,
  `AfwijkendeMaxSnelheid` varchar(255) NOT NULL,
  `AfstandVoorzijdeVrtgTotHartkoppeling` varchar(255) NOT NULL,
  `WAVerzekerd` varchar(255) NOT NULL,
  `Kenteken` varchar(10)
  PRIMARY KEY (`Voertuig_ID`),
  UNIQUE KEY `Kenteken` (`Kenteken`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9740 ;

Daarbij kieper je dan bij elke nieuwe dataset uit de API de tabel voertuigen_RDW weer leeg en insert je de gehele dataset.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 18:06:51 #111
62215 qu63
..de tijd drinkt..
pi_145161248
quote:
0s.gif Op vrijdag 3 oktober 2014 18:04 schreef Monolith het volgende:

[..]

Maakt op zich niet zo heel veel uit. Het relevante aspect is dat je de hele dataset via de API opvraagt, niet enkel mutaties bijvoorbeeld.
Wat je dan vervolgens wil, als ik het goed begrijp, is het volgende:

• Voeg rijen toe aan de eigen database voor alle kentekens in de dataset die nog niet in de eigen database stonden
• Verwijder alle rijen uit de eigen database waarbij het kenteken niet voorkomt in de nieuwe dataset
• Update alle informatie voor al bestaande kentekens

Klopt dat?

Zo ja, dan is deze opzet ook een optie:
[ code verwijderd ]

Daarbij kieper je dan bij elke nieuwe dataset uit de API de tabel voertuigen_RDW weer leeg en insert je de gehele dataset.
Niet helemaal, ik wil ook de voertuigen die gexporteerd/gesloopt zijn behouden.

Maar dat maakt verder niet uit voor de tabellen geloof ik.
Hoe zou ik de SQL-query dan moeten maken?
It's Time To Shine
What would life be like without rhethorical questions?
pi_145161315
quote:
0s.gif Op vrijdag 3 oktober 2014 18:06 schreef qu63 het volgende:

[..]

Niet helemaal, ik wil ook de voertuigen die gexporteerd/gesloopt zijn behouden.

Maar dat maakt verder niet uit voor de tabellen geloof ik.
Hoe zou ik de SQL-code dan moeten maken?
Als dat de use case is, dan zou ik gewoon voor de insert met on duplicate key update gaan.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 18:09:30 #113
187069 slacker_nl
Sicko pur sang
pi_145161318
Ik zou het volgende doen. reken de md5sum uit van elk dataset. Vergelijk die md5sum (digest) van je eigen DB tegen die van het RDW: Verschil, record updaten/inserten (incl de digest). Geen verschil, volgend record. En dan kan je via on update ook nog een last_modified oid hebben, dan ben je klaar. En date_created, voila. Dan kan je denk ik redelijk snel door je records heen gaan zonder overal afzonderlijk complete sets te vergelijken.
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 3 oktober 2014 @ 18:14:15 #114
62215 qu63
..de tijd drinkt..
pi_145161439
quote:
1s.gif Op vrijdag 3 oktober 2014 18:09 schreef Monolith het volgende:

[..]

Als dat de use case is, dan zou ik gewoon voor de insert met on duplicate key update gaan.
INSERT INTO voertuigen (columns) VALUES (values) ON DUPLICATE KEY UPDATE c1=v1, c2=v2, etc

Zoiets?
It's Time To Shine
What would life be like without rhethorical questions?
  vrijdag 3 oktober 2014 @ 18:15:19 #115
62215 qu63
..de tijd drinkt..
pi_145161470
quote:
0s.gif Op vrijdag 3 oktober 2014 18:09 schreef slacker_nl het volgende:
Ik zou het volgende doen. reken de md5sum uit van elk dataset. Vergelijk die md5sum (digest) van je eigen DB tegen die van het RDW: Verschil, record updaten/inserten (incl de digest). Geen verschil, volgend record. En dan kan je via on update ook nog een last_modified oid hebben, dan ben je klaar. En date_created, voila. Dan kan je denk ik redelijk snel door je records heen gaan zonder overal afzonderlijk complete sets te vergelijken.
Maar dan dus wel mijn tabel splitsen zoals hier Monolith zei? DIG / [PHP/(My)SQL] voor dummies #118
It's Time To Shine
What would life be like without rhethorical questions?
pi_145161475
quote:
0s.gif Op vrijdag 3 oktober 2014 18:09 schreef slacker_nl het volgende:
Ik zou het volgende doen. reken de md5sum uit van elk dataset. Vergelijk die md5sum (digest) van je eigen DB tegen die van het RDW: Verschil, record updaten/inserten (incl de digest). Geen verschil, volgend record. En dan kan je via on update ook nog een last_modified oid hebben, dan ben je klaar. En date_created, voila. Dan kan je denk ik redelijk snel door je records heen gaan zonder overal afzonderlijk complete sets te vergelijken.
Waarom zou je dat zo vreselijk omslachtig doen?
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_145161499
quote:
0s.gif Op vrijdag 3 oktober 2014 18:15 schreef qu63 het volgende:

[..]

Maar dan dus wel mijn tabel splitsen zoals hier Monolith zei? DIG / [PHP/(My)SQL] voor dummies #118
Nee, dat was meer in de veronderstelling dat je ook wilde verwijderen. Negeer dat maar. ;)
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 18:19:20 #118
187069 slacker_nl
Sicko pur sang
pi_145161606
quote:
1s.gif Op vrijdag 3 oktober 2014 18:15 schreef Monolith het volgende:

[..]

Waarom zou je dat zo vreselijk omslachtig doen?
Hoezo omslachtig? Je kan anders namelijk niet zien wanneer de laatste wijziging heeft plaatsgevonden.
In theory there is no difference between theory and practice. In practice there is.
pi_145161693
quote:
0s.gif Op vrijdag 3 oktober 2014 18:19 schreef slacker_nl het volgende:

[..]

Hoezo omslachtig? Je kan anders namelijk niet zien wanneer de laatste wijziging heeft plaatsgevonden.
Je kunt in je insert en on update gewoon de curdate() meegeven.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 18:25:00 #120
187069 slacker_nl
Sicko pur sang
pi_145161752
quote:
1s.gif Op vrijdag 3 oktober 2014 18:22 schreef Monolith het volgende:

[..]

Je kunt in je insert en on update gewoon de curdate() meegeven.
Maar als je gewoon klakkeloos importeert zijn de gegevens zonder te checken of de data veranderd is staat curdate altijd op het import-moment.
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 3 oktober 2014 @ 18:26:33 #121
62215 qu63
..de tijd drinkt..
pi_145161781
quote:
1s.gif Op vrijdag 3 oktober 2014 18:22 schreef Monolith het volgende:

[..]

Je kunt in je insert en on update gewoon de curdate() meegeven.
Die geeft de API van de RDW zelf al mee, maar dat is het moment van opvragen van de gegevens, niet van de laatste actualisatie
It's Time To Shine
What would life be like without rhethorical questions?
pi_145161812
quote:
0s.gif Op vrijdag 3 oktober 2014 18:25 schreef slacker_nl het volgende:

[..]

Maar als je gewoon klakkeloos importeert zijn de gegevens zonder te checken of de data veranderd is staat curdate altijd op het import-moment.
Ah je bedoelt daadwerkelijke wijzigingen ipv een update met dezelfde data. Ik weet niet of dat vereist is.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 18:31:29 #123
187069 slacker_nl
Sicko pur sang
pi_145161897
quote:
1s.gif Op vrijdag 3 oktober 2014 18:27 schreef Monolith het volgende:

[..]

Ah je bedoelt daadwerkelijke wijzigingen ipv een update met dezelfde data. Ik weet niet of dat vereist is.
Dat is wel hoe ik de vraag interpreteerde.
quote:
Hoe kan ik nu de ongeveer 10.000 records uit hun API plukken, checken of het kenteken (het enige unieke record) al bestaat en if so, checken of er wijzigingen zijn, en if so de wijzigingen doorvoeren in mijn tabel. Ik kan dan zelf mijn eigen 'updated on' veld wel aanpassen


[ Bericht 24% gewijzigd door slacker_nl op 03-10-2014 18:36:44 ]
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 3 oktober 2014 @ 18:35:14 #124
62215 qu63
..de tijd drinkt..
pi_145161994
We kunnen het ook anders doen :P

Met mijn script haal ik een deel van de gegevens van de RDW op via Azure: https://datamarket.azure.(...)rtg.open.data#schema

Deze gegevens wil ik verrijken met mijn eigen data en opslaan in mijn eigen database.

Omdat de voertuigen die ik check niet veel verhandeld worden is een wekelijkse check voldoende. Helaas kan ik dus alleen de complete set opvragen. Deze set wil ik dus vergelijken met mijn database en alleen de updates verwerken in mijn database.

Als de gegevens bij de RDW geupdate zijn, wil ik mijn verrijkingen ook checken en updaten.

Daarnaast periodieke updates van mijn verrijkingen. Dit moet alleen in kleine batches gedaan worden, dus ik wil steeds de oudste 5 (ofzo) records updaten (dus degene die t langs geleden gewijzigd zijn).

Hoe zouden jullie de tabellen opzetten?
It's Time To Shine
What would life be like without rhethorical questions?
  vrijdag 3 oktober 2014 @ 18:51:30 #125
152283 totalvamp
Tell your world!
pi_145162472
quote:
0s.gif Op vrijdag 3 oktober 2014 18:25 schreef slacker_nl het volgende:

[..]

Maar als je gewoon klakkeloos importeert zijn de gegevens zonder te checken of de data veranderd is staat curdate altijd op het import-moment.
Een update wordt niet uitgevoerd als de data die in de tabel staat hetzelfde is.
Dan heb je daar dus geen last van.
  vrijdag 3 oktober 2014 @ 19:00:36 #126
187069 slacker_nl
Sicko pur sang
pi_145162746
quote:
0s.gif Op vrijdag 3 oktober 2014 18:51 schreef totalvamp het volgende:

[..]

Een update wordt niet uitgevoerd als de data die in de tabel staat hetzelfde is.
Dan heb je daar dus geen last van.
Bij MySQL wel, ik weet niet hoe andere databases hiermee omgaan.

Hij update de values niet, maar hij triggert mogelijk wel de iets als je die update doet.. Wij doen bijv dit: last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP, waardoor de last_modified aanpast na een update. Of de waardes daadwerkelijk zijn aangepast is niet van belang, de call werd gedaan en wordt zo zichtbaar. Dus..

[ Bericht 11% gewijzigd door slacker_nl op 03-10-2014 19:09:29 ]
In theory there is no difference between theory and practice. In practice there is.
pi_145163006
quote:
0s.gif Op vrijdag 3 oktober 2014 19:00 schreef slacker_nl het volgende:

[..]

Bij MySQL wel, ik weet niet hoe andere databases hiermee omgaan.
Bovendien geef je de curdate mee bij de update dus dan is ie altijd anders. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 19:23:07 #128
152283 totalvamp
Tell your world!
pi_145163694
quote:
0s.gif Op vrijdag 3 oktober 2014 19:00 schreef slacker_nl het volgende:

[..]

Bij MySQL wel, ik weet niet hoe andere databases hiermee omgaan.

Hij update de values niet, maar hij triggert mogelijk wel de iets als je die update doet.. Wij doen bijv dit: last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP, waardoor de last_modified aanpast na een update. Of de waardes daadwerkelijk zijn aangepast is niet van belang, de call werd gedaan en wordt zo zichtbaar. Dus..
Nee bij MySQL niet, letterlijk net getest.
zelfde data invoegen met een INSERT + UPDATE
1
2
3
4
5
6
7
8
9
Veranderd de update tijd niet:
INSERT INTO test
(name, username) VALUES ('b', 'b')
ON DUPLICATE KEY UPDATE name = 'b', username='b'

Veranderd hem wel:
INSERT INTO test
(name, username) VALUES ('b', 'a')
ON DUPLICATE KEY UPDATE name = 'b', username='a'

Als je het zelf wilt testen kun je deze tabel invoegen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `username` varchar(255) NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Gegevens worden uitgevoerd voor tabel `test`
--

INSERT INTO `test` (`id`, `name`, `username`, `last_update`) VALUES
(1, 'a', 'a', '0000-00-00 00:00:00'),
(2, 'b', 'a', '0000-00-00 00:00:00');

Om daarna eerst deze query uit te voeren:
1
2
3
4
5
6
7
8
9
10
11
Deze zal niks doen:

INSERT INTO test
(name, username) VALUES ('a', 'a')
ON DUPLICATE KEY UPDATE name = 'a', username='a'


Deze wel:
INSERT INTO test
(name, username) VALUES ('b', 'a')
ON DUPLICATE KEY UPDATE name = 'b', username='a'
pi_145163836
quote:
0s.gif Op vrijdag 3 oktober 2014 19:00 schreef slacker_nl het volgende:

[..]

Bij MySQL wel, ik weet niet hoe andere databases hiermee omgaan.

Hij update de values niet, maar hij triggert mogelijk wel de iets als je die update doet.. Wij doen bijv dit: last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP, waardoor de last_modified aanpast na een update. Of de waardes daadwerkelijk zijn aangepast is niet van belang, de call werd gedaan en wordt zo zichtbaar. Dus..
Niet alleen DEFAULT, ook ON UPDATE CURRENT_TIMESTAMP.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  vrijdag 3 oktober 2014 @ 23:40:18 #130
62215 qu63
..de tijd drinkt..
pi_145174772
Aangezien ik het toch rij voor rij uit zou moeten voeren, kan ik net zo goed eerst een "SELECT * FROM voertuigen WHERE kenteken=$kenteken" doen en op basis daarvan INSERT of UPDATE doen.

Toch :?
It's Time To Shine
What would life be like without rhethorical questions?
  zaterdag 4 oktober 2014 @ 01:26:34 #131
62215 qu63
..de tijd drinkt..
pi_145177855
Dit lijkt mij nu wel een redelijke oplossing:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$columns 
implode(", ",array_keys($code));
$escaped_values array_map(NULLarray_values($code));
$values  implode(", "$escaped_values);
$sql "SELECT kenteken FROM voertuigen WHERE kenteken='".$item["M:PROPERTIES"]["D:KENTEKEN"]."1'";
$result mysqli_query($con$sql);
if(
mysqli_num_rows($result)>0)
    {
    
$sql "UPDATE voertuigen SET Updated='".$item['UPDATED']."', Datumaanvangtenaamstelling='".strtotime($item["M:PROPERTIES"]["D:DATUMAANVANGTENAAMSTELLING"])."', VervaldatumAPK='".strtotime($item["M:PROPERTIES"]["D:VERVALDATUMAPK"])."', Wachtopkeuren='".$item["M:PROPERTIES"]["D:WACHTOPKEUREN"]."' WHERE kenteken='".$item["M:PROPERTIES"]["D:KENTEKEN"]."'";
    
$query mysqli_query($con,$sql);
    }
    else
    {
    
$sql "INSERT INTO `voertuigen` ($columns) VALUES ($values)";
    
$query mysqli_query($con,$sql);
    list(
$klasse$category$EigenarenP$EigenarenZ$CarrosserieOmschrijving$Type$Variant$Uitvoering$Typegoedkeuring$VervalDatTachograaf$TijdAanvangTenaamstelling$Gestolen$Geexporteerd$WAVerzekerd$BijzonderheidTekst$Lengte$Breedte$AantalAssen$AantalWielen$Wielbasis$AfwijkendeMaxSnelheid$AfstandVoorzijdeVrtgTotHartkoppeling) = get_ovi($item["M:PROPERTIES"]["D:KENTEKEN"]);
    
$sql "Update voertuigen SET klasse='".$klasse."', Categorie='".$category."', EigenarenP='".$EigenarenP."', EigenarenZ='".$EigenarenZ."', CarrosserieOmschrijving='".$CarrosserieOmschrijving."', Type='".$Type."', Variant='".$Variant."', Uitvoering='".$Uitvoering."', Typegoedkeuring='".$Typegoedkeuring."', VervalDatTachograaf='".strtotime($VervalDatTachograaf)."', TijdAanvangTenaamstelling='".$TijdAanvangTenaamstelling."', Gestolen='".$Gestolen."', Geexporteerd='".$Geexporteerd."', WAVerzekerd='".$WAVerzekerd."', BijzonderheidTekst='".$BijzonderheidTekst."', Lengte='".$Lengte."', Breedte='".$Breedte."', AantalAssen='".$AantalAssen."', AantalWielen='".$AantalWielen."', Wielbasis='".$Wielbasis."', AfwijkendeMaxSnelheid='".$AfwijkendeMaxSnelheid."', AfstandVoorzijdeVrtgTotHartkoppeling='".$AfstandVoorzijdeVrtgTotHartkoppeling."' WHERE Kenteken = '".$item["M:PROPERTIES"]["D:KENTEKEN"]."'";
    
$query mysqli_query($con,$sql);
?>
$con en $code worden eerder al gedefineerd :)
It's Time To Shine
What would life be like without rhethorical questions?
pi_145181669
quote:
0s.gif Op zaterdag 4 oktober 2014 01:26 schreef qu63 het volgende:
Dit lijkt mij nu wel een redelijke oplossing:
[ code verwijderd ]

$con en $code worden eerder al gedefineerd :)
Tip: gebruik PDO. :)
  zaterdag 4 oktober 2014 @ 11:37:50 #133
91039 mstx
2x1/2 = 1/2 x 1/2
pi_145182030
quote:
1s.gif Op zaterdag 4 oktober 2014 11:17 schreef robin007bond het volgende:

[..]

Tip: gebruik PDO. :)
Waarom?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_145183158
quote:
0s.gif Op zaterdag 4 oktober 2014 11:37 schreef mstx het volgende:

[..]

Waarom?
Als je wilt switchen van database is het veel makkelijker.

Plus er zitten handige dingen in injecties te voorkomen. BindParam etc.
  zaterdag 4 oktober 2014 @ 13:30:12 #135
152283 totalvamp
Tell your world!
pi_145184582
quote:
0s.gif Op zaterdag 4 oktober 2014 01:26 schreef qu63 het volgende:
Dit lijkt mij nu wel een redelijke oplossing:
[ code verwijderd ]

$con en $code worden eerder al gedefineerd :)
Of je gebruikt gewoon de INSERT en dan ON DUPLICATE KEY UPDATE

waarom zou je daar omheen werken met een constructie die alleen maar meer queries oplevert...
pi_145184780
Je kunt ook een Stored procedure schrijven en zo zijn er nog 101 opties. Kies gewoon iets dat werkt, aangezien het voor zover ik kan zien toch niet een of ander enorm project is waarbij de architectuur enorm belangrijk is. Hooguit moet je op een gegeven moment naar performance gaan kijken, maar zolang je nog hele datasets uit een API trekt ligt de bottleneck niet bij wat database interacties.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  zaterdag 4 oktober 2014 @ 14:02:50 #137
62215 qu63
..de tijd drinkt..
pi_145185485
quote:
1s.gif Op zaterdag 4 oktober 2014 11:17 schreef robin007bond het volgende:

[..]

Tip: gebruik PDO. :)
Wat is PDO?
It's Time To Shine
What would life be like without rhethorical questions?
  zaterdag 4 oktober 2014 @ 14:03:15 #138
62215 qu63
..de tijd drinkt..
pi_145185498
quote:
0s.gif Op zaterdag 4 oktober 2014 13:36 schreef Monolith het volgende:
Je kunt ook een Stored procedure schrijven en zo zijn er nog 101 opties. Kies gewoon iets dat werkt, aangezien het voor zover ik kan zien toch niet een of ander enorm project is waarbij de architectuur enorm belangrijk is. Hooguit moet je op een gegeven moment naar performance gaan kijken, maar zolang je nog hele datasets uit een API trekt ligt de bottleneck niet bij wat database interacties.
Optimalisatie was de volgende stap ja :)
It's Time To Shine
What would life be like without rhethorical questions?
pi_145185589
quote:
0s.gif Op zaterdag 4 oktober 2014 14:02 schreef qu63 het volgende:

[..]

Wat is PDO?
http://bit.ly/1uJOkmd
pi_145185627
Ik zit met een vaag probleem. Ik heb een production server waarop ik een website live wil gooien. Ik heb de bestanden in de root van de webserver geŁpload.

De folder structure ziet er ongeveer zo uit:

/ root
- application
- system
- public
---- assets
---- index.php
---- .htaccess

Als ik nu naar het domein ga krijg ik de melding dat er geen content geŁpload is. Ik snap dat er geen index.php in de root staat en dat dat wel nodig is, maar hoe hou ik dan de private en public content gescheiden? Ik gebruik CodeIgniter trouwens.
pi_145185673
quote:
0s.gif Op zaterdag 4 oktober 2014 14:08 schreef pascal08 het volgende:
Ik zit met een vaag probleem. Ik heb een production server waarop ik een website live wil gooien. Ik heb de bestanden in de root van de webserver geŁpload.

De folder structure ziet er ongeveer zo uit:

/ root
- application
- system
- public
---- assets
---- index.php
---- .htaccess

Als ik nu naar het domein ga krijg ik de melding dat er geen content geŁpload is. Ik snap dat er geen index.php in de root staat en dat dat wel nodig is, maar hoe hou ik dan de private en public content gescheiden? Ik gebruik CodeIgniter trouwens.
Volgens mij kun je dat allemaal in je .htaccess regelen. :)
pi_145185759
quote:
1s.gif Op zaterdag 4 oktober 2014 14:10 schreef robin007bond het volgende:

[..]

Volgens mij kun je dat allemaal in je .htaccess regelen. :)
Er moet dus ook een .htaccess in de root komen?

1
2
3
4
[..]
RewriteEngine On
RewriteBase /public/
[..]

Zoiets?

[ Bericht 20% gewijzigd door pascal08 op 04-10-2014 14:20:26 ]
  zaterdag 4 oktober 2014 @ 14:30:59 #143
62215 qu63
..de tijd drinkt..
pi_145186194
quote:
0s.gif Op zaterdag 4 oktober 2014 13:30 schreef totalvamp het volgende:

[..]

Of je gebruikt gewoon de INSERT en dan ON DUPLICATE KEY UPDATE

waarom zou je daar omheen werken met een constructie die alleen maar meer queries oplevert...
Dat bedacht ik me gisteravond ook, maar toen vond ik een reden om dat niet te doen.

Geen idee meer wat die reden was -O- :D
It's Time To Shine
What would life be like without rhethorical questions?
pi_145186842
quote:
0s.gif Op zaterdag 4 oktober 2014 14:13 schreef pascal08 het volgende:

[..]

Er moet dus ook een .htaccess in de root komen?
[ code verwijderd ]

Zoiets?

De melding is nu weg. Ik heb enkel nog een lege witte pagina nu. Ik heb de bestanden gewoon 1:1 gekopieerd vanuit m'n local environment. Ik snap niet wat er nou fout gaat. :?

Help? :'(
  zaterdag 4 oktober 2014 @ 15:18:17 #145
152283 totalvamp
Tell your world!
pi_145187358
quote:
0s.gif Op zaterdag 4 oktober 2014 14:30 schreef qu63 het volgende:

[..]

Dat bedacht ik me gisteravond ook, maar toen vond ik een reden om dat niet te doen.

Geen idee meer wat die reden was -O- :D
Luiheid :P?
  zaterdag 4 oktober 2014 @ 15:38:18 #146
62215 qu63
..de tijd drinkt..
pi_145187905
quote:
1s.gif Op zaterdag 4 oktober 2014 15:18 schreef totalvamp het volgende:

[..]

Luiheid :P?
Nee, want ik dacht juist eerst aan INSERT ON DUPLICATE UPDATE :P

t zal de drank wel zijn geweest :')
It's Time To Shine
What would life be like without rhethorical questions?
  zaterdag 4 oktober 2014 @ 16:52:26 #147
62215 qu63
..de tijd drinkt..
pi_145189407
quote:
1s.gif Op zaterdag 4 oktober 2014 15:18 schreef totalvamp het volgende:

[..]

Luiheid :P?
Ah, ik weet t al!

Mijn script poepte eerst alle velden uit, en maakte daarna een hele lange rij van alle waarden zodat ik het in ťťn query kon doen. Dat zou dus niet meer lukken met een INSERT ON DUPLICATE UPDATE :)

Maar goed, soms is het nodig om je script eens te herzien :P
It's Time To Shine
What would life be like without rhethorical questions?
  zaterdag 4 oktober 2014 @ 17:46:38 #148
91039 mstx
2x1/2 = 1/2 x 1/2
pi_145190876
quote:
1s.gif Op zaterdag 4 oktober 2014 12:29 schreef robin007bond het volgende:

[..]

Als je wilt switchen van database is het veel makkelijker.

Plus er zitten handige dingen in injecties te voorkomen. BindParam etc.
Met mysqli kun je ook gewoon parameters binden, en wie switcht er in de praktijk nou echt van database?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  zaterdag 4 oktober 2014 @ 19:51:11 #149
187069 slacker_nl
Sicko pur sang
pi_145194028
quote:
0s.gif Op zaterdag 4 oktober 2014 17:46 schreef mstx het volgende:

[..]

Met mysqli kun je ook gewoon parameters binden, en wie switcht er in de praktijk nou echt van database?
Bij mijn vorige werkgever gebruikte we sqlite voor de testsuite en postgres voor het echte werk. Of je hebt apps waarbij je een db nodig hebt en die moeten werken of je nu mysql, berkely, postgres of Oracle hebt... shit must work yo.
In theory there is no difference between theory and practice. In practice there is.
pi_145194349
quote:
0s.gif Op zaterdag 4 oktober 2014 17:46 schreef mstx het volgende:

[..]

Met mysqli kun je ook gewoon parameters binden, en wie switcht er in de praktijk nou echt van database?
Ik heb het al degelijk wel eens meegemaakt. Switchen van database (van MySQL naar Postgres) en helaas was er geen gebruik gemaakt van PDO -O-
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  zaterdag 4 oktober 2014 @ 20:08:02 #151
91039 mstx
2x1/2 = 1/2 x 1/2
pi_145194458
quote:
0s.gif Op zaterdag 4 oktober 2014 20:04 schreef Rockfire het volgende:

[..]

Ik heb het al degelijk wel eens meegemaakt. Switchen van database (van MySQL naar Postgres) en helaas was er geen gebruik gemaakt van PDO -O-
Ja ok, maar hoe zit dat dan met de queries zelf? Moet je dan niet alsnog bepaalde syntax zoals LIMIT...OFFSET aanpassen voor postgres? :?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_145194505
quote:
0s.gif Op zaterdag 4 oktober 2014 20:08 schreef mstx het volgende:

[..]

Ja ok, maar hoe zit dat dan met de queries zelf? Moet je dan niet alsnog bepaalde syntax zoals LIMIT...OFFSET aanpassen voor postgres? :?
Jawel, maar als dat alles is is het veel minder werk dan ook nog de code ombouwen naar PDO-gebruik
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  zaterdag 4 oktober 2014 @ 20:13:10 #153
91039 mstx
2x1/2 = 1/2 x 1/2
pi_145194617
quote:
0s.gif Op zaterdag 4 oktober 2014 20:09 schreef Rockfire het volgende:

[..]

Jawel, maar als dat alles is is het veel minder werk dan ook nog de code ombouwen naar PDO-gebruik
In principe heb je gelijk, maar het ligt er ook aan hoe de applicatie is opgebouwd. Ik maak nu zelf gebruik van mysqli maar ik zou het in een paar minuten kunnen ombouwen naar PDO of iets anders omdat ik het gewoon in een database-classje heb zitten dus ik hoef maar een paar functies aan te passen. :Y
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  zaterdag 4 oktober 2014 @ 20:28:28 #154
187069 slacker_nl
Sicko pur sang
pi_145195072
quote:
0s.gif Op zaterdag 4 oktober 2014 20:08 schreef mstx het volgende:

[..]

Ja ok, maar hoe zit dat dan met de queries zelf? Moet je dan niet alsnog bepaalde syntax zoals LIMIT...OFFSET aanpassen voor postgres? :?
Dat regelt de ORM voor ons. Whieeee.
In theory there is no difference between theory and practice. In practice there is.
  zondag 5 oktober 2014 @ 11:38:12 #155
6897 Chandler
prof. dislecticus
pi_145210094
quote:
14s.gif Op donderdag 2 oktober 2014 21:55 schreef KomtTijd... het volgende:
InnoDB tabellen zou je als het goed is niet moeten kunnen kopiŽren door de bestanden in het filesystem te kopiŽren. Althans, misschien kan het goed gaan maar het wordt uitdrukkelijk afgeraden en niet ondersteund.
Tot op heden geen probleem, maar die kunnen nog komen hoor :D
taal voutjes zijn onderdel van mijn leeven.
up up down down left right left right B A en dan heb je courier!!!! grrr
  maandag 6 oktober 2014 @ 23:22:39 #156
291799 TwenteFC
Red is the color.
pi_145278387
:P Gewoon even omdat ik graag van input van anderen hou,

Hoe zouden jullie de volgende situatie aanpakken;

Een groothandel met een ~10,000 klanten die regelmatig wat bestellen uit een assortiment van 60,000 producten die zijn onderverdeeld in ongeveer 150 categorieŽn.

Waarbij er per klant/inkoopgroep korting gegeven kan worden complete groepen, individuele producten, staffelkorting, uitzonderingen binnen groepen waarop geen korting gegeven mag worden, actie periodes waarvoor een andere prijs geldt, kortingen vanaf een bepaald bedrag en kortingen die zowel als een prijsafspraak of als een percentage kunnen worden gegeven en combinaties hiertussen.

Dit werkt op dit moment allemaal nog "on the fly" maar ik merk zelf dat de performance wanneer bijvoorbeeld gechecked moet worden op staffelkortingen die gegeven worden op een combinatie van een merk en een groep niet is wat het zou moeten zijn.

Is het een gek idee om kortingen voor een klant op het moment van het aanmaken van een regel,en bij het wijzigen / aanmaken van een product wordt gecontroleerd of er klanten zijn die in aanmerkingen komen voor korting. op te slaan in een database, zodat deze berekeningen niet constant in de winkelwagen, bij wijze van hoeven plaats te vinden?
pi_145285025
Ik zou eerst eens uitzoeken welke queries zo lang duren en waarom, en of je daar iets aan kunt optimaliseren.
pi_145285575
quote:
19s.gif Op maandag 6 oktober 2014 23:22 schreef TwenteFC het volgende:
:P Gewoon even omdat ik graag van input van anderen hou,

Hoe zouden jullie de volgende situatie aanpakken;

Een groothandel met een ~10,000 klanten die regelmatig wat bestellen uit een assortiment van 60,000 producten die zijn onderverdeeld in ongeveer 150 categorieŽn.

Waarbij er per klant/inkoopgroep korting gegeven kan worden complete groepen, individuele producten, staffelkorting, uitzonderingen binnen groepen waarop geen korting gegeven mag worden, actie periodes waarvoor een andere prijs geldt, kortingen vanaf een bepaald bedrag en kortingen die zowel als een prijsafspraak of als een percentage kunnen worden gegeven en combinaties hiertussen.

Dit werkt op dit moment allemaal nog "on the fly" maar ik merk zelf dat de performance wanneer bijvoorbeeld gechecked moet worden op staffelkortingen die gegeven worden op een combinatie van een merk en een groep niet is wat het zou moeten zijn.

Is het een gek idee om kortingen voor een klant op het moment van het aanmaken van een regel,en bij het wijzigen / aanmaken van een product wordt gecontroleerd of er klanten zijn die in aanmerkingen komen voor korting. op te slaan in een database, zodat deze berekeningen niet constant in de winkelwagen, bij wijze van hoeven plaats te vinden?
Zoals gezegd, kijk eerst waar de bottleneck precies ligt. Alles in MySql proppen is ook niet ideaal, zeker niet als je later besluit om nog eens van Database technologie te wisselen. Het zou bijvoorbeeld ook best kunnen zijn dat het handiger is om hier een back-end service voor in te richten. PHP is niet bepaald optimaal voor zware berekeningen en daarbij kun je met een dergelijke oplossing gebruik maken van caching. Bovendien is het non-blocking, oftewel, de gebruiker hoeft er niet op te wachten. Een andere oplossingsrichting is bijvoorbeeld het gebruik maken van web workers om in de browser asynchroon iets te laten uitvoeren.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_145285887
Sowieso, mocht je voor 1 of 2 berekeningen een pagina op moeten houden, kun je die beter als asynchrone request uitvoeren.
pi_145301387
quote:
19s.gif Op maandag 6 oktober 2014 23:22 schreef TwenteFC het volgende:
:P Gewoon even omdat ik graag van input van anderen hou,

Hoe zouden jullie de volgende situatie aanpakken;

Een groothandel met een ~10,000 klanten die regelmatig wat bestellen uit een assortiment van 60,000 producten die zijn onderverdeeld in ongeveer 150 categorieŽn.

Waarbij er per klant/inkoopgroep korting gegeven kan worden complete groepen, individuele producten, staffelkorting, uitzonderingen binnen groepen waarop geen korting gegeven mag worden, actie periodes waarvoor een andere prijs geldt, kortingen vanaf een bepaald bedrag en kortingen die zowel als een prijsafspraak of als een percentage kunnen worden gegeven en combinaties hiertussen.

Dit werkt op dit moment allemaal nog "on the fly" maar ik merk zelf dat de performance wanneer bijvoorbeeld gechecked moet worden op staffelkortingen die gegeven worden op een combinatie van een merk en een groep niet is wat het zou moeten zijn.

Is het een gek idee om kortingen voor een klant op het moment van het aanmaken van een regel,en bij het wijzigen / aanmaken van een product wordt gecontroleerd of er klanten zijn die in aanmerkingen komen voor korting. op te slaan in een database, zodat deze berekeningen niet constant in de winkelwagen, bij wijze van hoeven plaats te vinden?
Als eerste zou ik uitzoeken waarom die berekeningen zo lang duren en of er niet wat te optimaliseren valt.

Daarnaast zou ik zeker de resultaten van berekeningen in een cache opslaan (in de sessie van de klant, welke in een file, db, memcached, etc... staat). Dan alleen bij wijzigingen die invloed hebben op de berekening dingen updaten.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  dinsdag 7 oktober 2014 @ 19:27:02 #161
355592 Djurres
Knowledge, Fuck it.
pi_145304514
quote:
0s.gif Op zaterdag 4 oktober 2014 20:04 schreef Rockfire het volgende:

[..]

Ik heb het al degelijk wel eens meegemaakt. Switchen van database (van MySQL naar Postgres) en helaas was er geen gebruik gemaakt van PDO -O-
Das wel balen, anders had het in principe alleen een nieuwe handler gekost.
Tadumtiedum.
pi_145326795
Ik ben aan het stoeien met een 'upload' module voor CMSMS. Ik wil de naamgeving van de bestanden aanpassen aan wat de user aangeeft. Dat kan met onderstaande code:

1<p>{$prompt_destname} <input type="text" name="{$actionid}input_destname" value="" size="40" maxlength="255"/></p>

Ik wil aan de naamgeving een timestamp toevoegen. Hoe kan ik dat het beste oplossen?
Feitelijk moet de input value gecombineerd worden met
1{current_date format="%y%m%d%T"}
pi_145327058
uit de documentatie van de uploads module:

quote:
(optional) prefix="0" - Een boolean die aangeeft of bestandsnamen een prefix moeten hebben
(optional) prefix_feu="0" - Een boolean parameter die aangeeft dat de prefix van de huidige auteur gebruikt moet worden of, als deze niet opgegeven is, de prefix van de huidige tijd (in dechex formaat)
Misschien is de engelse helppage wat duidelijker, mocht je er niet uit komen.

[ Bericht 8% gewijzigd door KomtTijd... op 08-10-2014 13:18:55 ]
  woensdag 8 oktober 2014 @ 13:34:39 #164
187069 slacker_nl
Sicko pur sang
pi_145327857
quote:
14s.gif Op woensdag 8 oktober 2014 13:12 schreef KomtTijd... het volgende:
uit de documentatie van de uploads module:

[..]

Misschien is de engelse helppage wat duidelijker, mocht je er niet uit komen.
Noem het dan gewoon has_prefix, prefix_author, dan is het in een keer duidelijk. Naamgeving van dingen.. blergh.
In theory there is no difference between theory and practice. In practice there is.
pi_145327942
Ik denk eerder dat de omschrijvingen gewoon brak vertaald zijn, geen zin om het weer te checken gezien dat met 10 seconden trial-and-error ook wel vast te stellen valt.
pi_145328437
Bedankt voor de feedback. Nu weet ik in ieder geval in welke hoek ik het moet zoeken.

Juist die helppagina vind ik nogal verwarrend. De code heb ik toegevoegd aan de template voor het formulier (bovenstaande code) dat werkte niet. Vervolgens als de code op de pagina en ik krijg het niet aan de praat.
  woensdag 8 oktober 2014 @ 14:00:36 #167
187069 slacker_nl
Sicko pur sang
pi_145328878
quote:
14s.gif Op woensdag 8 oktober 2014 13:36 schreef KomtTijd... het volgende:
Ik denk eerder dat de omschrijvingen gewoon brak vertaald zijn, geen zin om het weer te checken gezien dat met 10 seconden trial-and-error ook wel vast te stellen valt.
Het is ook niet naar jou toe hoor. Ik zie het in onze eigen code base ook. Ding krijgt een naam ala: user_id terwijl we het over een haar_kleur_id hebben. Argh! Dan heb ik liever dat ze het foo noemen.
In theory there is no difference between theory and practice. In practice there is.
pi_145329255
Het scheelt als je de value op "1" zet natuurlijk. :')

Ik denk dat ik er wel uit ga komen.

Thanks!
pi_145330969
quote:
0s.gif Op woensdag 8 oktober 2014 14:00 schreef slacker_nl het volgende:

[..]

Het is ook niet naar jou toe hoor. Ik zie het in onze eigen code base ook. Ding krijgt een naam ala: user_id terwijl we het over een haar_kleur_id hebben. Argh! Dan heb ik liever dat ze het foo noemen.
Van myVar1 t/m myVar392 en myTemporaryVar1 t/m myTemporaryVar921 word ik meestal ook niet echt vrolijk. Eťn van de redenen dat ik blij ben dat ik nauwelijks meer met PHP developers te maken heb. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  woensdag 8 oktober 2014 @ 15:24:36 #170
12221 Tijn
Powered by MS Paint
pi_145331748
quote:
0s.gif Op woensdag 8 oktober 2014 15:04 schreef Monolith het volgende:

[..]

Van myVar1 t/m myVar392 en myTemporaryVar1 t/m myTemporaryVar921 word ik meestal ook niet echt vrolijk. Eťn van de redenen dat ik blij ben dat ik nauwelijks meer met PHP developers te maken heb. :P
Dit speelt natuurlijk niet alleen onder PHP-developers, he :P

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
pi_145331895
quote:
2s.gif Op woensdag 8 oktober 2014 15:24 schreef Tijn het volgende:

[..]

Dit speelt natuurlijk niet alleen onder PHP-developers, he :P

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Nee, maar de kracht van PHP is echter dat het simpel en laagdrempelig. Dat is ook gelijk het probleem. Bijna iedere debiel kan er mee werken en helaas doen ook veel te veel debielen dat. :P
Je kunt prima programmeren in PHP, hoewel de taal zelf al wel enorm slordig en chaotisch is, maar het gebeurt veel te weinig.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  woensdag 8 oktober 2014 @ 15:35:52 #172
12221 Tijn
Powered by MS Paint
pi_145332145
Ik heb wel het idee dat het mede dankzij de toolset van vandaag de dag (Composer, Symphony etc.) en de ontwikkelingen in de taal (deprecaten van mysql_ functies enzo) het de laatste tijd wat beter gesteld is.

Maar om eerlijk te zijn zie ik eigenlijk niet zoveel PHP-code van anderen om echt een idee te hebben van wat mensen over het algemeen doen :+

[ Bericht 0% gewijzigd door Tijn op 08-10-2014 16:19:40 ]
  woensdag 8 oktober 2014 @ 15:41:53 #173
62215 qu63
..de tijd drinkt..
pi_145332336
quote:
2s.gif Op woensdag 8 oktober 2014 15:35 schreef Tijn het volgende:
Ik heb wel het idee dat het mede dankzij de toolset van vandaag de dag (Composer, Symphony etc.) en de ontwikkelingen in de taal (deprecaten van mysql_ functies enzo) de laatste tijd wat beter gesteld is.

Maar om eerlijk te zijn zie ik eigenlijk niet zoveel PHP-code van anderen om echt een idee te hebben van wat mensen over het algemeen doen :+
Ik zal je mijn code verder besparen dan ;)

Het werkt nu zoals t moet (geloof ik), optimaliseren komt daarna :P
It's Time To Shine
What would life be like without rhethorical questions?
  woensdag 8 oktober 2014 @ 16:23:01 #174
152283 totalvamp
Tell your world!
pi_145333778
quote:
0s.gif Op woensdag 8 oktober 2014 15:04 schreef Monolith het volgende:

[..]

Van myVar1 t/m myVar392 en myTemporaryVar1 t/m myTemporaryVar921 word ik meestal ook niet echt vrolijk. Eťn van de redenen dat ik blij ben dat ik nauwelijks meer met PHP developers te maken heb. :P
Of van die mensen die constant bestaande variabelen OPNIEUW in een andere zetten en dan er uiteindelijk niks mee doen :')

1
2
3
4
<?php

$name 
$_POST['name'];
echo 
$name//WAAAAAAAAAAAAAAAAAAAAAAAAAAAAROM!!!!!
pi_145334093
quote:
2s.gif Op woensdag 8 oktober 2014 15:35 schreef Tijn het volgende:
Ik heb wel het idee dat het mede dankzij de toolset van vandaag de dag (Composer, Symphony etc.) en de ontwikkelingen in de taal (deprecaten van mysql_ functies enzo) de laatste tijd wat beter gesteld is.

Maar om eerlijk te zijn zie ik eigenlijk niet zoveel PHP-code van anderen om echt een idee te hebben van wat mensen over het algemeen doen :+
Voor de wat grotere projecten wel ja, maar het neemt niet weg dat PHP in de basis nog steeds heel beroerd ontworpen is. Zie bijvoorbeeld deze vermakelijke klaagzang.
Verder wordt er nog heel wat aangeklooid in de PHP wereld.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  woensdag 8 oktober 2014 @ 16:38:03 #176
12221 Tijn
Powered by MS Paint
pi_145334228
quote:
0s.gif Op woensdag 8 oktober 2014 16:33 schreef Monolith het volgende:

[..]

het neemt niet weg dat PHP in de basis nog steeds heel beroerd ontworpen is
Het is helemaal niet ontworpen. Het is samengesteld uit ingestuurde patches vanuit de community. Dat is de reden dat het zo inconsistent is, maar dat is ook de reden dat het bijvoorbeeld een van de eerste talen buiten Javascript was die JSON ondersteunde. PHP's makke is ook z'n kracht, namelijk dat het kan zijn wat de mensen willen dat het is.
pi_145334487
quote:
14s.gif Op woensdag 8 oktober 2014 16:38 schreef Tijn het volgende:

[..]

Het is helemaal niet ontworpen. Het is samengesteld uit ingestuurde patches vanuit de community. Dat is de reden dat het zo inconsistent is, maar dat is ook de reden dat het bijvoorbeeld een van de eerste talen buiten Javascript was die JSON ondersteunde.
Dat is geen excuus natuurlijk. Legio projecten werken met community contributions. Dat betekent echter niet dat elke wijziging blind geaccepteerd wordt of dat er geen hele heldere eisen kunnen worden gesteld waar de bijdragen aan moeten voldoen.

quote:
PHP's makke is ook z'n kracht, namelijk dat het kan zijn wat de mensen willen dat het is.
Zoals ik al zei. Iedere debiel kan het in principe gebruiken, dat is zowel een voordeel als een nadeel. Voor mij als developer toch voornamelijk een nadeel. :P
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  woensdag 8 oktober 2014 @ 17:04:47 #178
187069 slacker_nl
Sicko pur sang
pi_145335121
quote:
2s.gif Op woensdag 8 oktober 2014 15:24 schreef Tijn het volgende:

[..]

Dit speelt natuurlijk niet alleen onder PHP-developers, he :P

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Klopt. Op mijn werk is het Perl en JS (angular) wat de klok slaat.
In theory there is no difference between theory and practice. In practice there is.
  woensdag 8 oktober 2014 @ 18:36:28 #179
12221 Tijn
Powered by MS Paint
pi_145337856
quote:
0s.gif Op woensdag 8 oktober 2014 16:46 schreef Monolith het volgende:

[..]

Dat is geen excuus natuurlijk. Legio projecten werken met community contributions. Dat betekent echter niet dat elke wijziging blind geaccepteerd wordt of dat er geen hele heldere eisen kunnen worden gesteld waar de bijdragen aan moeten voldoen.
Maar meestal hebben die projecten wel iemand aan het hoofd die de baas is en een visie heeft. Dat is er bij PHP niet. Niemand is de baas en er is geen plan over wat PHP moet zijn. Het is gewoon wat het is.

quote:
Zoals ik al zei. Iedere debiel kan het in principe gebruiken, dat is zowel een voordeel als een nadeel. Voor mij als developer toch voornamelijk een nadeel. :P
Misschien, hoewel je je met kwaliteit wel kunt onderscheiden van de meute. Ik denk dat het voor de wereld als geheel positief is dat er een populaire laagdrempelige programmeertaal bestaat die makkelijk is in te zetten voor het web.
pi_145338133
quote:
2s.gif Op woensdag 8 oktober 2014 18:36 schreef Tijn het volgende:

[..]

Maar meestal hebben die projecten wel iemand aan het hoofd die de baas is en een visie heeft. Dat is er bij PHP niet. Niemand is de baas en er is geen plan over wat PHP moet zijn. Het is gewoon wat het is.
Je hoeft geen echte centrale leider met een visie te hebben hoor. En er is wel degelijk een PHP team. Releases zijn natuurlijk centraal geregeld. Ik heb op PHP conferenties ook vaak genoeg smeekbedes van ze gehoord om ook wat bij te dragen. Op de vraag waarom de grotere partijen als facebook dat niet doen hadden ze dan niet echt een bevredigend antwoord. :P


quote:
Misschien, hoewel je je met kwaliteit wel kunt onderscheiden van de meute. Ik denk dat het voor de wereld als geheel positief is dat er een populaire laagdrempelige programmeertaal bestaat die makkelijk is in te zetten voor het web.
Oh het voldoet prima voor simpele webtoepassingen. Wil je meer performance dan moet je toch zoals facebook wel je eigen compilers gaan schrijven.
En als je niet zoals facebook groeit vanuit een hobby project dan begin je voor Enterprise level applicaties gewoon gelijk met bijvoorbeeld Java.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
pi_145338585
quote:
1s.gif Op woensdag 8 oktober 2014 18:47 schreef Monolith het volgende:

[..]

Je hoeft geen echte centrale leider met een visie te hebben hoor. En er is wel degelijk een PHP team. Releases zijn natuurlijk centraal geregeld. Ik heb op PHP conferenties ook vaak genoeg smeekbedes van ze gehoord om ook wat bij te dragen. Op de vraag waarom de grotere partijen als facebook dat niet doen hadden ze dan niet echt een bevredigend antwoord. :P

[..]

Oh het voldoet prima voor simpele webtoepassingen. Wil je meer performance dan moet je toch zoals facebook wel je eigen compilers gaan schrijven.
En als je niet zoals facebook groeit vanuit een hobby project dan begin je voor Enterprise level applicaties gewoon gelijk met bijvoorbeeld Java.
Wat is eigenlijk jouw mening over Python + Django? :)
  woensdag 8 oktober 2014 @ 19:06:00 #182
12221 Tijn
Powered by MS Paint
pi_145338742
quote:
1s.gif Op woensdag 8 oktober 2014 18:47 schreef Monolith het volgende:

[..]

Ik heb op PHP conferenties ook vaak genoeg smeekbedes van ze gehoord om ook wat bij te dragen. Op de vraag waarom de grotere partijen als facebook dat niet doen hadden ze dan niet echt een bevredigend antwoord. :P
Dat is wel interessant, ja. Je zou zeggen dat grote partijen als Facebook, Wikimedia, Wordpress etc. er veel baat bij hebben om aan PHP mee te bouwen.
  woensdag 8 oktober 2014 @ 19:08:14 #183
56176 Catch22-
Ben je Blind?!
pi_145338822
Facebook heeft toch hiphop?
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  woensdag 8 oktober 2014 @ 19:20:20 #184
12221 Tijn
Powered by MS Paint
pi_145339352
quote:
0s.gif Op woensdag 8 oktober 2014 19:08 schreef Catch22- het volgende:
Facebook heeft toch hiphop?
Maar leveren ze daarmee een bijdrage aan de codebase van PHP?
  woensdag 8 oktober 2014 @ 19:48:04 #185
56176 Catch22-
Ben je Blind?!
pi_145340503
quote:
2s.gif Op woensdag 8 oktober 2014 19:20 schreef Tijn het volgende:

[..]

Maar leveren ze daarmee een bijdrage aan de codebase van PHP?
nee maar wel aan de toepassing. Het is Ūets
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_145340747
quote:
2s.gif Op woensdag 8 oktober 2014 19:06 schreef Tijn het volgende:

[..]

Dat is wel interessant, ja. Je zou zeggen dat grote partijen als Facebook, Wikimedia, Wordpress etc. er veel baat bij hebben om aan PHP mee te bouwen.
Misschien werkt het al prima en zat het probleem vooral bij performance wat Facebook dus met hiphop heeft opgelost.
  woensdag 8 oktober 2014 @ 21:05:24 #187
291799 TwenteFC
Red is the color.
pi_145344165
quote:
0s.gif Op woensdag 8 oktober 2014 14:00 schreef slacker_nl het volgende:

[..]

Het is ook niet naar jou toe hoor. Ik zie het in onze eigen code base ook. Ding krijgt een naam ala: user_id terwijl we het over een haar_kleur_id hebben. Argh! Dan heb ik liever dat ze het foo noemen.
Dit soort dingen kom ik inderdaad ook wel eens tegen, godsgruwelijk irritant. Wat ook erg vervelend is wanneer mensen vreselijk inconsistente namen verzinnen.

$aGebruikers = [];
$gebruikersArray = [];
$gebruikers = [];

En dat in ťťn pagina, en het komt er dan op neer dat alles wel iets met gebruikers te maken heeft en dat er ook wel gebruikers inzitten maar dat ze maar van die kut namen kiezen omdat ze de variabele niet willen overschrijven, of weet ik wat voor een reden ze hebben.

Of mensen die een hekel lijken te hebben aan namen die langer zijn bijv. 8 karakters.
Geef die krengen gewoon een naam die in 1 oog opslag te begrijpen is, en dat je weet wat er inzit.
  donderdag 9 oktober 2014 @ 01:56:10 #188
8130 raptorix
THAI CHARACTER MAITAIKHU
pi_145353569
quote:
0s.gif Op woensdag 8 oktober 2014 16:23 schreef totalvamp het volgende:

[..]

Of van die mensen die constant bestaande variabelen OPNIEUW in een andere zetten en dan er uiteindelijk niks mee doen :')
[ code verwijderd ]

Is daar geen fatsoenlijke tooling voor? Ik develop met name in c# en voor visual studio gebruiken we resharper, als ik daar een variable definieer die niet gebruikt word begint die gelijk te bokken, net zoals als een Variabele mogelijk niet aan confentions voldoet.
  donderdag 9 oktober 2014 @ 01:57:53 #189
8130 raptorix
THAI CHARACTER MAITAIKHU
pi_145353577
quote:
0s.gif Op woensdag 8 oktober 2014 15:27 schreef Monolith het volgende:

[..]

Nee, maar de kracht van PHP is echter dat het simpel en laagdrempelig. Dat is ook gelijk het probleem. Bijna iedere debiel kan er mee werken en helaas doen ook veel te veel debielen dat. :P
Je kunt prima programmeren in PHP, hoewel de taal zelf al wel enorm slordig en chaotisch is, maar het gebeurt veel te weinig.
In elke taal kun je prima programmeren, echter als je taal de basis al niet afdwingt dan is de kans op brokken groot, daarom snap ik niet waarom mensen altijd maar worden aangezet om te beginnen met PHP en of Javascript, terwijl dat wel de slechtste talen zijn om te leren developen.
  donderdag 9 oktober 2014 @ 01:58:13 #190
8130 raptorix
THAI CHARACTER MAITAIKHU
pi_145353578
quote:
1s.gif Op woensdag 8 oktober 2014 17:04 schreef slacker_nl het volgende:

[..]

Klopt. Op mijn werk is het Perl en JS (angular) wat de klok slaat.
Werk je toevallig voor booking.com :+ ?

Edit: Ik ben dement, had je dit al eerder gevraagt :)
  Grappenmaker donderdag 9 oktober 2014 @ 02:55:52 #191
388507 d4v1d
Wat vind je van de Singel?
pi_145353756
quote:
0s.gif Op woensdag 8 oktober 2014 16:23 schreef totalvamp het volgende:

[..]

Of van die mensen die constant bestaande variabelen OPNIEUW in een andere zetten en dan er uiteindelijk niks mee doen :')
[ code verwijderd ]

van die mensen die onzinnige comments maken waar je niks aan hebt zijn ook irritant
10.gif
Op vrijdag 3 oktober 2014 22:08 schreef LompeHork het volgende:
D4v1d is wel een baas _O_
Op zondag 25 september 2016 16:43 schreef Crip het volgende:
Ik vind jou echt een onwijs leuke user.
  donderdag 9 oktober 2014 @ 06:12:03 #192
187069 slacker_nl
Sicko pur sang
pi_145353921
quote:
0s.gif Op donderdag 9 oktober 2014 01:58 schreef raptorix het volgende:

[..]

Werk je toevallig voor booking.com :+ ?

Edit: Ik ben dement, had je dit al eerder gevraagt :)
Nee, maar wel in Amsterdam. Perlhoofdstad van Nederland 8-)

[ Bericht 7% gewijzigd door slacker_nl op 09-10-2014 07:21:35 (mobiel af) ]
In theory there is no difference between theory and practice. In practice there is.
pi_145354794
quote:
0s.gif Op donderdag 9 oktober 2014 01:57 schreef raptorix het volgende:

[..]

In elke taal kun je prima programmeren, echter als je taal de basis al niet afdwingt dan is de kans op brokken groot, daarom snap ik niet waarom mensen altijd maar worden aangezet om te beginnen met PHP en of Javascript, terwijl dat wel de slechtste talen zijn om te leren developen.
Juist vanwege de laagdrempeligheid en als je in de praktijk wilt leren dan is dat lekke makkelijk.
Ik zou echter Łberhaupt niet gelijk beginnen met programmeren, maar met een iets abstractere basis.
Een groter probleem is mijns inziens juist dat mensen beginnen met een beetje klooien, zonder nou echt de fundamenten te snappen.
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  donderdag 9 oktober 2014 @ 09:00:17 #194
230788 n8n
Pragmatisch
pi_145354902
quote:
0s.gif Op donderdag 9 oktober 2014 01:57 schreef raptorix het volgende:

[..]

In elke taal kun je prima programmeren, echter als je taal de basis al niet afdwingt dan is de kans op brokken groot, daarom snap ik niet waarom mensen altijd maar worden aangezet om te beginnen met PHP en of Javascript, terwijl dat wel de slechtste talen zijn om te leren developen.
javascript is fucking baas. Prima instapper juist.
Specialization is for insects”.—Robert Heinlein
  donderdag 9 oktober 2014 @ 09:10:19 #195
12221 Tijn
Powered by MS Paint
pi_145355018
quote:
1s.gif Op donderdag 9 oktober 2014 09:00 schreef n8n het volgende:

[..]

javascript is fucking baas. Prima instapper juist.
Het probleem met Javascript is dat je echt heel goed moet weten hoe de taal werkt voordat je er goed mee aan de slag kunt. Er zijn heel veel dingen die stilzwijgend gebeuren en niet altijd even logisch zijn. Ik denk dat een beginner zich vooral moet concentreren op hoe programmeren Łberhaupt werkt en dan zijn de quirks van JS eigenlijk onnodige ballast.
pi_145355084
quote:
1s.gif Op donderdag 9 oktober 2014 09:00 schreef n8n het volgende:

[..]

javascript is fucking baas. Prima instapper juist.
1
2
console.log(0.4 + 0.3);
console.log(0.4 + 0.2);


Wat zie je in de console als je dit uitvoert?
“I did not mean that Conservatives are generally stupid; I meant, that stupid persons are generally Conservative. I believe that to be so obvious and undeniable a fact that I hardly think any hon. Gentleman will question it.“
  donderdag 9 oktober 2014 @ 09:39:09 #197
12221 Tijn
Powered by MS Paint
pi_145355477
quote:
0s.gif Op donderdag 9 oktober 2014 09:15 schreef Monolith het volgende:
[..]
[ code verwijderd ]
Wat zie je in de console als je dit uitvoert?
Dat floats niet precies zijn ligt niet aan Javascript, dat komt door je CPU. Elke programmeertaal heeft hier last van.

Als ik in C uitvoer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main (int argv, char* argc[]) {
  
  if(0.4 + 0.3 == 0.7)
  {
    printf("0.4 + 0.3 = 0.7\r\n");
  }
  else
  {
    printf("wut?\r\n");
  }
  
  if(0.4 + 0.2 == 0.6)
  {
    printf("0.4 + 0.2 = 0.6\r\n");
  }
  else
  {
    printf("wut?\r\n");
  }

  return EXIT_SUCCESS;   
}

Dan is de output:

1
2
0.4 + 0.3 = 0.7
wut?
pi_145355837
Java is in mijn ogen de beste taal om te beginnen. Forceert een paradigma waardoor je beginners niet verward.
  donderdag 9 oktober 2014 @ 09:58:02 #199
187069 slacker_nl
Sicko pur sang
pi_145355947
Ik zou juist beginnen met shell scriptjes... O+
In theory there is no difference between theory and practice. In practice there is.
pi_145356027
quote:
0s.gif Op donderdag 9 oktober 2014 09:58 schreef slacker_nl het volgende:
Ik zou juist beginnen met shell scriptjes... O+
Lekker BASH coden!
Kom maar konijntje, doe maar wiebelen wiebelen...
abonnementen ibood.com bol.com Gearbest
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')