abonnement Unibet Coolblue
pi_144547083


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
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.

[ Bericht 2% gewijzigd door #ANONIEM op 21-09-2014 00:08:43 ]
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
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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);
?>
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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 );
?>
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
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.
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.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  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
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
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.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')