abonnement Unibet Coolblue
  zaterdag 11 januari 2014 @ 19:43:09 #71
256935 xzaz
McBacon to the rescue!
pi_135366644
quote:
1s.gif Op zaterdag 11 januari 2014 19:21 schreef n8n het volgende:

[..]

in principe kan het toch niet voorkomen, sowieso is elk email adres in de tabel uniek.
Assumption is the mother of all fuckups. Juist dat 'in principe' is waarom je een exception gooit.
  zondag 12 januari 2014 @ 13:29:06 #72
230788 n8n
Pragmatisch
pi_135392077
quote:
0s.gif Op zaterdag 11 januari 2014 19:43 schreef xzaz het volgende:

[..]

Assumption is the mother of all fuckups. Juist dat 'in principe' is waarom je een exception gooit.
duidelijk, als ik eigenwijs klink is dat omdat ik het nog onduidelijk heb. Schrijf je die exception dan in de functie if als else statement na de if?

Nog iets anders, ik schrijf nu elke class in een aparte php file, doe ik zodat ik het overzicht hou en het leek me handig omdat ik bepaalde files dan alleen hoef te includen waar nodig. Vroeg me af of het zinnig is en niet te veel overhead gaf als er veel bestanden ingelezen moeten worden.
Specialization is for insects”.—Robert Heinlein
pi_135399611
Iedere class in een file is vrij gebruikelijk, zelf includen niet. Gebruik je een framework? Meeste frameworks hebben dat geautoriseerd.
  zondag 12 januari 2014 @ 17:54:37 #74
230788 n8n
Pragmatisch
pi_135402417
quote:
14s.gif Op zondag 12 januari 2014 16:41 schreef KomtTijd... het volgende:
Iedere class in een file is vrij gebruikelijk, zelf includen niet. Gebruik je een framework? Meeste frameworks hebben dat geautoriseerd.
nee probeer eerst standaard php te leren. Over een week stage, daar werken ze met lavarel oid. Vandaag proberen homebrew aan te praat te krijgen ipv mamp en heb volgens mij m'n apache config file verneukt :')
Specialization is for insects”.—Robert Heinlein
pi_135428349
Vond dit wel een aardige verzameling, misschien heeft iemand er nog iets aan:
Artful Common MySQL Queries.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_135428626
quote:
7s.gif Op maandag 13 januari 2014 10:33 schreef Aether het volgende:
Vond dit wel een aardige verzameling, misschien heeft iemand er nog iets aan:
Artful Common MySQL Queries.
Nice, over sql gesproken, deze kerel is echt een baas: http://code.openark.org/blog/mysql/sql-pie-chart
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  FOK!mycroftheld maandag 13 januari 2014 @ 13:09:46 #77
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135432802
quote:
0s.gif Op maandag 13 januari 2014 10:44 schreef raptorix het volgende:

[..]

Nice, over sql gesproken, deze kerel is echt een baas: http://code.openark.org/blog/mysql/sql-pie-chart
Wat een monsterquery :D
pi_135432929
quote:
6s.gif Op maandag 13 januari 2014 13:09 schreef bondage het volgende:

[..]

Wat een monsterquery :D
Ik heb keer een stored procedure van iets van 600 regels geschreven ;)
Was iets met een grote huizensite zeg maar ;)
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  maandag 13 januari 2014 @ 13:14:55 #79
256935 xzaz
McBacon to the rescue!
pi_135432992
quote:
0s.gif Op maandag 13 januari 2014 13:13 schreef raptorix het volgende:

[..]

Ik heb keer een stored procedure van iets van 600 regels geschreven ;)
Was iets met een grote huizensite zeg maar ;)
599 Regels commentaar?
pi_135433078
quote:
16s.gif Op maandag 13 januari 2014 13:14 schreef xzaz het volgende:

[..]

599 Regels commentaar?
Nee was de searchquery maar daarin ook nog eens het hele paging en parameter mechanisme, pfffff hoofdpijn van dat ding.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  maandag 13 januari 2014 @ 13:18:15 #81
256935 xzaz
McBacon to the rescue!
pi_135433103
quote:
0s.gif Op maandag 13 januari 2014 13:17 schreef raptorix het volgende:

[..]

Nee was de searchquery maar daarin ook nog eens het hele paging en parameter mechanisme, pfffff hoofdpijn van dat ding.
https://github.com/Shandem/Examine ?
pi_135433182
quote:
We spreken hier over 2001, toen waren dat soort technieken nog niet zo gebruikelijk, wat we wel deden was de database readonly maken, dat scheelt ongeveer 40 procent. Tegenwoordig gebruik je voor dit soort zaken gewoon een noSql server of anders wel een ORM mapper.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  maandag 13 januari 2014 @ 13:21:44 #83
256935 xzaz
McBacon to the rescue!
pi_135433217
quote:
0s.gif Op maandag 13 januari 2014 13:20 schreef raptorix het volgende:

[..]

We spreken hier over 2001, toen waren dat soort technieken nog niet zo gebruikelijk, wat we wel deden was de database readonly maken, dat scheelt ongeveer 40 procent. Tegenwoordig gebruik je voor dit soort zaken gewoon een noSql server of anders wel een ORM mapper.
Ah, dat plaatst het wat in de context, als je een sp van 600 regels maakt moet er toch een lampje gaan branden. The horror!
  maandag 13 januari 2014 @ 16:25:24 #84
230788 n8n
Pragmatisch
pi_135440770
Yay Apache, MySQL en de laatste versie van php werken op m'n Macbook. Heb nu alleen dat als ik een pagina met een MySQL refresh het laden lang duurt. ~2 seconden gebeurt er niks en dan is alles er binnen een oogwenk. Waar moet ik dit zoeken?

edit: het duurt maar liefst 5.0075240135193 seconden :+ vrij consistent ook

edit2: via stackoverflow mn host info veranderd naar good old 127.0.0.1 en nu werkt het in 0.0031747817993164 seconden. Beter _O_
Specialization is for insects”.—Robert Heinlein
  maandag 13 januari 2014 @ 18:59:59 #85
230788 n8n
Pragmatisch
pi_135446979
Ben ik weer. Om in een functie specifieke $_POST input te krijgen moest ik of telkens voluit $_POST['name'] schrijven, er een variabele van maken of variabelen global aanroepen. Heb nu een functie die je overal kan aanroepen die de $_POST data omzet in losse variabelen die je lokaal kan gebruiken.

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
<?php
// fictieve $_POST array
$post = array('email' => 'hoi''password' => 'test');
        
        function 
get_variables($data) {
            
            
$key 0;
    
            do {
            
            
$keys array_keys($data);
            
$var = (array_keys($data)[$key]);
            
            global $
$var;
                        
                if (!empty(
$data[$var])) { $$var $data[$var];
                
                } else { $
$var null; }
                
                
$key++;
                
            } while (
array_key_exists($key$keys));    
        }

        
// hier wil ik $_POST gaan gebruiken
        
get_variables($post);
        
        
// variabelen komen uit de functie
        
echo "$email<br>$password";
?>
het maakt van elke key in een array een variable met de naam en waarde van de key. dus $_POST[email] wordt omgezet naar $email = 'waarde van email'. Als een waarde leeg is heeft de variabele een null waarde.

Op of aanmerkingen? Kom net kijken dus heb vaak het idee dat ik met :') ideeën kom
Specialization is for insects”.—Robert Heinlein
  FOK!mycroftheld maandag 13 januari 2014 @ 19:01:30 #86
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135447052
quote:
6s.gif Op maandag 13 januari 2014 18:59 schreef n8n het volgende:
Ben ik weer. Om in een functie specifieke $_POST input te krijgen moest ik of telkens voluit $_POST['name'] schrijven, er een variabele van maken of variabelen global aanroepen. Heb nu een functie die je overal kan aanroepen die de $_POST data omzet in losse variabelen die je lokaal kan gebruiken.
[ code verwijderd ]

het maakt van elke key in een array een variable met de naam en waarde van de key. dus $_POST[email] wordt omgezet naar $email = 'waarde van email'. Als een waarde leeg is heeft de variabele een null waarde.

Op of aanmerkingen? Kom net kijken dus heb vaak het idee dat ik met :') ideeën kom
Global vind ik zelf niet zo netjes. Ik zou het via een class (service) doen.
  maandag 13 januari 2014 @ 19:02:51 #87
230788 n8n
Pragmatisch
pi_135447107
quote:
14s.gif Op maandag 13 januari 2014 19:01 schreef bondage het volgende:

[..]

Global vind ik zelf niet zo netjes. Ik zou het via een class (service) doen.
global is toch nodig om de variabele überhaupt te kunnen definiëren buiten de scope van de function (of class)?
Specialization is for insects”.—Robert Heinlein
  FOK!mycroftheld maandag 13 januari 2014 @ 19:05:26 #88
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135447230
quote:
7s.gif Op maandag 13 januari 2014 19:02 schreef n8n het volgende:

[..]

global is toch nodig om de variabele überhaupt te kunnen definiëren buiten de scope van de function (of class)?
Bij een class heb je global niet nodig. Als je het object eenmaal hebt aangemaakt kun je dat meegeven aan je functies. Ook kun je op jouw manier variabelen per ongeluk overschrijven als je dezelfde namen ergens anders gebruikt.
  maandag 13 januari 2014 @ 19:08:30 #89
230788 n8n
Pragmatisch
pi_135447369
quote:
11s.gif Op maandag 13 januari 2014 19:05 schreef bondage het volgende:

[..]

Bij een class heb je global niet nodig. Als je het object eenmaal hebt aangemaakt kun je dat meegeven aan je functies. Ook kun je op jouw manier variabelen per ongeluk overschrijven als je dezelfde namen ergens anders gebruikt.
dus variabelen die je binnen je class (maar buiten een functie aanmaakt) kan je binnen die class in elke functie gebruiken? Ga dat even proberen. Zou wel mooi zijn met het oog op overschrijven van bestaande waarden.
Specialization is for insects”.—Robert Heinlein
pi_135447382
quote:
6s.gif Op maandag 13 januari 2014 18:59 schreef n8n het volgende:
Ben ik weer. Om in een functie specifieke $_POST input te krijgen moest ik of telkens voluit $_POST['name'] schrijven, er een variabele van maken of variabelen global aanroepen. Heb nu een functie die je overal kan aanroepen die de $_POST data omzet in losse variabelen die je lokaal kan gebruiken.
[ code verwijderd ]

het maakt van elke key in een array een variable met de naam en waarde van de key. dus $_POST[email] wordt omgezet naar $email = 'waarde van email'. Als een waarde leeg is heeft de variabele een null waarde.

Op of aanmerkingen? Kom net kijken dus heb vaak het idee dat ik met :') ideeën kom
Dit is niet echt een goede oplossing. Veel te onveilig, je kunt zelf post variabelen toevoegen en die worden dan als variabele gebruikt. Dit is een paar jaar geleden een grote overstap geweest voor mensen. register_globals stond vaak aan en gaf superveel beveiligingslekken. Je hebt nu een zelfde soort functie geschreven.
  maandag 13 januari 2014 @ 19:13:27 #91
230788 n8n
Pragmatisch
pi_135447631
quote:
0s.gif Op maandag 13 januari 2014 19:08 schreef totalvamp het volgende:

[..]

Dit is niet echt een goede oplossing. Veel te onveilig, je kunt zelf post variabelen toevoegen en die worden dan als variabele gebruikt. Dit is een paar jaar geleden een grote overstap geweest voor mensen. register_globals stond vaak aan en gaf superveel beveiligingslekken. Je hebt nu een zelfde soort functie geschreven.
niet eens aan gedacht :') dan zou het eventueel nog met een werken als ik een prefix toevoeg zodat overschrijven van bestaande variabelen (door kwaadwillenden) geen optie meer is. Toch blij dat ik het even heb nagevraagd. global haal ik sowieso wel weg dan :+

[ Bericht 0% gewijzigd door n8n op 13-01-2014 19:27:03 ]
Specialization is for insects”.—Robert Heinlein
  FOK!mycroftheld maandag 13 januari 2014 @ 19:13:29 #92
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135447633
quote:
14s.gif Op maandag 13 januari 2014 19:08 schreef n8n het volgende:

[..]

dus variabelen die je binnen je class (maar buiten een functie aanmaakt) kan je binnen die class in elke functie gebruiken? Ga dat even proberen. Zou wel mooi zijn met het oog op overschrijven van bestaande waarden.
Alles wat je in een class buiten de functie zet is beschikbaar binnen de functies die in die class staan.

Voorbeeld:

private $variable_1 = 'test';
private $variable_2 = 'test2';

public function testFunctie() {
echo $this->variable_1 . '<br /> . $this->variable_2';
}
  maandag 13 januari 2014 @ 19:14:16 #93
230788 n8n
Pragmatisch
pi_135447668
quote:
0s.gif Op maandag 13 januari 2014 19:13 schreef bondage het volgende:

[..]

Alles wat je in een class buiten de functie zet is beschikbaar binnen de functies die in die class staan.

Voorbeeld:

private $variable_1 = 'test';
private $variable_2 = 'test2';

public function testFunctie() {
echo $this->$variable_1 . '<br /> . $this->$variable_2';
}
ah in 1 keer snap ik $this, heb ik meteen m'n prefix te pakken :+
Specialization is for insects”.—Robert Heinlein
pi_135447706
quote:
7s.gif Op maandag 13 januari 2014 19:14 schreef n8n het volgende:

[..]

ah in 1 keer snap ik $this, heb ik meteen m'n prefix te pakken :+
$this is de referentie naar de class waar je momenteel in zit (of inherit).
Voor statische vars is dit self::

[ Bericht 2% gewijzigd door #ANONIEM op 13-01-2014 19:15:37 ]
  FOK!mycroftheld maandag 13 januari 2014 @ 19:15:21 #95
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135447718
quote:
7s.gif Op maandag 13 januari 2014 19:14 schreef n8n het volgende:

[..]

ah in 1 keer snap ik $this, heb ik meteen m'n prefix te pakken :+
Zie edit :P

$this->variable_1 (dollarteken hoort niet voor de var)
  maandag 13 januari 2014 @ 19:15:59 #96
230788 n8n
Pragmatisch
pi_135447749
quote:
0s.gif Op maandag 13 januari 2014 19:15 schreef totalvamp het volgende:

[..]

$this is de referentie naar de class waar je momenteel in zit (of inherit).
Voor statische vars is dit self::
ze maken het wel makkelijk
Specialization is for insects”.—Robert Heinlein
  maandag 13 januari 2014 @ 19:17:47 #97
230788 n8n
Pragmatisch
pi_135447852
quote:
11s.gif Op maandag 13 januari 2014 19:15 schreef bondage het volgende:

[..]

Zie edit :P

$this->variable_1 (dollarteken hoort niet voor de var)
ja precies, nu weer uitdokteren hoe ik m'n idee alsnog werkend krijg want het is niet echt DRY als ik overal globals moet definiëren. :+
Specialization is for insects”.—Robert Heinlein
  FOK!mycroftheld maandag 13 januari 2014 @ 19:28:32 #98
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135448457
quote:
7s.gif Op maandag 13 januari 2014 19:17 schreef n8n het volgende:

[..]

ja precies, nu weer uitdokteren hoe ik m'n idee alsnog werkend krijg want het is niet echt DRY als ik overal globals moet definiëren. :+
Zoiets zou je mee kunnen beginnen:

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
<?php
class cRequest {
    private 
$request_vars;
    
    public function 
__construct() {
        
$this->request_vars $_REQUEST;
    }
    
    public function 
setRequestVar($v_key$v_val) {
        
$this->request_vars[$v_key] = $v_val;
    }
    
    public function 
getRequestVar($key$ret_nonexisting '') {
        if(isset(
$this->request_vars[$key])) {
            return 
$this->request_vars[$key];
        }
        
        return 
$ret_nonexisting;
    }
    
    public function 
getRequestArray() {
        return 
$this->request_vars;
    }
}
?>
<?php
    $obj_request 
= new cRequest();
    
    
// print de var, als deze niet bestaat dan krijg je 'ik_was_undefined' terug.
    
echo $obj_request->getRequestVar('bla''ik_was_undefined');
?>

Dit werkt dan ook:
1
2
3
4
5
6
7
<?php
echo testFunction($obj_request);

function 
testFunction($request_object) {
    return 
$request_object->getRequestVar('bla''ik_was_undefined');
}
?>
pi_135448713
quote:
14s.gif Op maandag 13 januari 2014 19:28 schreef bondage het volgende:

[..]

Zoiets zou je mee kunnen beginnen:
[ code verwijderd ]

Dit is niet de beste oplossing, je classe is een beetje ouderwets en je kunt dan beter gebruik maken van de magic get en set methoden. Dat scheelt ook gelijk in wat je moet typen.

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
<?php
class cRequest {
    private 
$request_vars;
    
    public function 
__construct() {
        
$this->request_vars $_REQUEST;
    }
    
    public function 
__set($v_key$v_val) {
        
$this->request_vars[$v_key] = $v_val;
    }
    
    public function 
__get($key) {
        if(isset(
$this->request_vars[$key])) {
            return 
$this->request_vars[$key];
        }
        
        return 
false;
    }
    
    public function 
getRequestArray() {
        return 
$this->request_vars;
    }
}
?>
<?php
    $obj_request 
= new cRequest();
    
    
// krijg een var of false
    
echo $obj_request->bla;
?>


[ Bericht 1% gewijzigd door #ANONIEM op 13-01-2014 19:33:52 ]
  maandag 13 januari 2014 @ 19:36:24 #100
230788 n8n
Pragmatisch
pi_135448903
Heel erg bedankt heren, ik moet het nu even 500 keer lezen voordat ik het door heb :+ Zit nog in de fase dat ik van de ene naar de andere error vraag op stack overflow browse

heb nu bezoek (yay maar helaas). Morgen weer verder puzzlen _O_
Specialization is for insects”.—Robert Heinlein
  FOK!mycroftheld maandag 13 januari 2014 @ 19:44:17 #101
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135449459
quote:
0s.gif Op maandag 13 januari 2014 19:33 schreef totalvamp het volgende:

[..]

Dit is niet de beste oplossing, je classe is een beetje ouderwets en je kunt dan beter gebruik maken van de magic get en set methoden. Dat scheelt ook gelijk in wat je moet typen.
[ code verwijderd ]

Dat had ik in de eerste instantie maar dan kun je niet bepalen wat er moet worden teruggegeven indien de var niet voorkomt in de globale request array.

Stel dat je een form hebt en je wilt vooraf ingevulde waarden hebben als er geen input van de gebruiker is doorgegeven, via de functie getRequestVar in mijn class kun je dan via de tweede param aangeven wat deze waarde moet zijn. Op jouw manier lukt dat niet, of ik moet iets over het hoofd zien. Ook kun je de functie uitbreiden met een extra param waarin je bijvoorbeeld mee kunt geven of je de waarde om wilt zetten in htmlentities, dan hoef je die functie niet los aan te roepen in je template.
pi_135449851
quote:
11s.gif Op maandag 13 januari 2014 19:44 schreef bondage het volgende:

[..]

Dat had ik in de eerste instantie maar dan kun je niet bepalen wat er moet worden teruggegeven indien de var niet voorkomt in de globale request array.

Stel dat je een form hebt en je wilt vooraf ingevulde waarden hebben als er geen input van de gebruiker is doorgegeven, via de functie getRequestVar in mijn class kun je dan via de tweede param aangeven wat deze waarde moet zijn. Op jouw manier lukt dat niet, of ik moet iets over het hoofd zien. Ook kun je de functie uitbreiden met een extra param waarin je bijvoorbeeld mee kunt geven of je de waarde om wilt zetten in htmlentities, dan hoef je die functie niet los aan te roepen in je template.
Ik begreep inderdaad dat je iets specifieks terug wilde hebben. Dat is alleen niet de taak van deze class. Je geeft alleen iets terug en in je Template class of Controller zul je daar iets mee moeten doen.

Bijvoorbeeld:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$t 
= new Template('test');
$r = new Request();
$t->replace('email'$r->email);

class 
Template {
   protected 
$html;
   public function 
replace($key$with) {
      if(
false !== $with)
        
$this->html str_replace($key$with$this->html);
      
// Hier kun je afhandelen wat je doet als het false is
   
}
}

Ik moet er wel bij zeggen dat ik mijn formulieren opbouw met classes. Elk element is een class met zijn eigen validatie en manier om standaardwaarde te zetten.

[ Bericht 1% gewijzigd door #ANONIEM op 13-01-2014 20:00:07 ]
  FOK!mycroftheld maandag 13 januari 2014 @ 20:10:32 #103
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135451162
quote:
0s.gif Op maandag 13 januari 2014 19:50 schreef totalvamp het volgende:

[..]

Ik begreep inderdaad dat je iets specifieks terug wilde hebben. Dat is alleen niet de taak van deze class. Je geeft alleen iets terug en in je Template class of Controller zul je daar iets mee moeten doen.

Bijvoorbeeld:
[ code verwijderd ]

Ik moet er wel bij zeggen dat ik mijn formulieren opbouw met classes. Elk element is een class met zijn eigen validatie en manier om standaardwaarde te zetten.
Ik ben het met je eens dat je dit soort zaken in de template zelf af hoort te handelen, echter vind ik het zelf wel handig dat de request class het in dit geval ook kan omdat je de waarden niet altijd in de template gebruikt maar misschien ook ergens anders. Je zou dit natuurlijk ook door die classes (bijv. een formulier verwerking class) laten afhandelen maar dat vond ik voor het voorbeeldje iets te diep op de stof ingaan.

Ik bouw in de meeste tools/websites die ik heb geschreven de template op als een extension op een baseclass en set dan alle vars die nodig zijn in de template. Je kunt daar dan eventueel ook standaardwaarden zetten.
pi_135452125
quote:
14s.gif Op maandag 13 januari 2014 20:10 schreef bondage het volgende:

[..]

Ik ben het met je eens dat je dit soort zaken in de template zelf af hoort te handelen, echter vind ik het zelf wel handig dat de request class het in dit geval ook kan omdat je de waarden niet altijd in de template gebruikt maar misschien ook ergens anders. Je zou dit natuurlijk ook door die classes (bijv. een formulier verwerking class) laten afhandelen maar dat vond ik voor het voorbeeldje iets te diep op de stof ingaan.

Ik bouw in de meeste tools/websites die ik heb geschreven de template op als een extension op een baseclass en set dan alle vars die nodig zijn in de template. Je kunt daar dan eventueel ook standaardwaarden zetten.
Ja misschien inderdaad te geavanceerd voor een beginner :)

Ookal gebruik je de request ergens anders, zou je eigenlijk nog steeds een false moeten teruggeven als standaard. Wat gebeurd er nu als je de request class gebruikt om een database te vullen. Dan vult hij de waardes met een string ookal bestaat de waarde niet.

Normaal heb je natuurlijk iets van validatie, maar deze stap zou je al over kunnen slaan als de waarde false is. Al heeft dit waarschijnlijk weinig nut in jouw opzet.

Ik hou zelf de regel aan dat ik of een string/array/object teruggeef of een false. En uiteindelijk in de Controller de waarschuwing ervan laat zien als dat nodig is.

Dit is even een voorbeeld hoe ik zelf een form opbouw:

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
<?php
$f 
= new System\Core\Form();
    
$f->addElement(new System\Core\Form\Element\Fieldset(
        array(
        
'name' => 'testFieldset',
        
'label' => 'Testfieldset',
        
'elements' => array(
            new 
System\Core\Form\Input\Text(array(
            
'name' => 'test',
            
'label' => 'Test field',
            
'value' => 'testvaluess',
            
'validator' => array(
                
'Length' => array('max' => 10)
            ))),
            new 
System\Core\Form\Input\Text(array(
            
'name' => 'test',
            
'label' => 'Testfield',
            
'value' => 'testvaluess',
            
'validator' => array(
                
'Length' => array('max' => 10)
            )))
        ))
    ));
    
$f->addElement(new System\Core\Form\Element\Button(
    array(
        
'name' => 'Test',
        
'value' => 'Test'
    
)
    ));
    
$f->show();
?>

De form wordt op de post pagina dan gevalideerd

[ Bericht 33% gewijzigd door #ANONIEM op 13-01-2014 20:31:33 ]
pi_135453049
quote:
0s.gif Op maandag 13 januari 2014 19:33 schreef totalvamp het volgende:

[..]

Dit is niet de beste oplossing, je classe is een beetje ouderwets en je kunt dan beter gebruik maken van de magic get en set methoden. Dat scheelt ook gelijk in wat je moet typen.
[ code verwijderd ]

Ik zou het zo maken dat de constructor een array accepteert, zodat je dezelfde class ook voor $_GET en $_POST kunt gebruiken. En zodat je de code makkelijker kunt testen. En classes waarvan de naam begint met een kleine letter c snap ik ook niet.

1
2
3
4
5
6
7
8
9
10
11
<?php
class cRequest {
    private 
$request_vars;
    
    public function 
__construct($vars $_REQUEST) {
        
$this->request_vars $vars;
    }

    
// meer functies
}
?>
pi_135453961
quote:
0s.gif Op maandag 13 januari 2014 20:43 schreef Light het volgende:

[..]

Ik zou het zo maken dat de constructor een array accepteert, zodat je dezelfde class ook voor $_GET en $_POST kunt gebruiken. En zodat je de code makkelijker kunt testen. En classes waarvan de naam begint met een kleine letter c snap ik ook niet.
[ code verwijderd ]

Wat dat betreft kun je eigenlijk ook gewoon gelijk de $_REQUEST gebruiken. Dan kun je de class als static gebruiken.
  FOK!mycroftheld maandag 13 januari 2014 @ 21:32:40 #107
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135455872
quote:
0s.gif Op maandag 13 januari 2014 20:43 schreef Light het volgende:

[..]

En classes waarvan de naam begint met een kleine letter c snap ik ook niet.
Dat is mij zo aangeleerd tijdens een cursus OOP ergens in een ver verleden, volgens mij om ervoor te zorgen dat je niet met gereserveerde namen komt te zitten. Je zou er eventueel ook iets anders voor kunnen zetten natuurlijk.
pi_135455987
quote:
11s.gif Op maandag 13 januari 2014 21:32 schreef bondage het volgende:

[..]

Dat is mij zo aangeleerd tijdens een cursus OOP ergens in een ver verleden, volgens mij om ervoor te zorgen dat je niet met gereserveerde namen komt te zitten. Je zou er eventueel ook iets anders voor kunnen zetten natuurlijk.
Tegenwoordig heeft PHP namespaces om dat soort conflicten te voorkomen.
  FOK!mycroftheld maandag 13 januari 2014 @ 21:37:36 #109
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135456168
quote:
0s.gif Op maandag 13 januari 2014 21:34 schreef Light het volgende:

[..]

Tegenwoordig heeft PHP namespaces om dat soort conflicten te voorkomen.
Je UI past goed bij deze post :+ Namespaces moet ik me toch maar eens in gaan verdiepen, werkelijk nog nooit gebruikt :@
  FOK!mycroftheld maandag 13 januari 2014 @ 21:56:44 #110
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135457399
quote:
0s.gif Op maandag 13 januari 2014 20:43 schreef Light het volgende:

[..]

Ik zou het zo maken dat de constructor een array accepteert, zodat je dezelfde class ook voor $_GET en $_POST kunt gebruiken.
Wat is trouwens je redenatie daarachter? Ik had juist voor $_REQUEST gekozen omdat deze zowel de GET als POST waarden bevat. Ik doe het eigenlijk altijd zo en ben nog nooit tegen problemen aangelopen.
  Moderator / Redactie Sport / Devops maandag 13 januari 2014 @ 22:21:01 #111
176766 crew  zoem
zoemt
pi_135459169
quote:
11s.gif Op maandag 13 januari 2014 21:32 schreef bondage het volgende:

[..]

Dat is mij zo aangeleerd tijdens een cursus OOP ergens in een ver verleden, volgens mij om ervoor te zorgen dat je niet met gereserveerde namen komt te zitten. Je zou er eventueel ook iets anders voor kunnen zetten natuurlijk.
Dat is (een variant op) de Hungarian notation en stamt uit de tijd dat data types niet snel herkend konden worden in de code. In php vind ik dergelijke type hints (want dat zijn het) overbodig, want 1) php is weak typed en 2) een goede IDE geeft ook hints. Je ziet ook dat deze notatie niet (meer) gebruikt wordt in de bekende frameworks en projecten zoals ZF, Symfony, Doctrine, Laravel en vele anderen.

Zoals Light al aangeeft heb je nu namespaces. Moderne frameworks maken daar al dankbaar gebruik van. Hiervoor zag je veelvuldig de underscore-notatie (bijv Zend_View_Helper_Abstract) om conflicten te voorkomen. In beide constructies wordt de projectnaam als primaire prefix/namespace gebruikt.
  FOK!mycroftheld maandag 13 januari 2014 @ 22:26:55 #112
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135459545
quote:
0s.gif Op maandag 13 januari 2014 22:21 schreef zoem het volgende:

[..]

Dat is (een variant op) de Hungarian notation en stamt uit de tijd dat data types niet snel herkend konden worden in de code. In php vind ik dergelijke type hints (want dat zijn het) overbodig, want 1) php is weak typed en 2) een goede IDE geeft ook hints. Je ziet ook dat deze notatie niet (meer) gebruikt wordt in de bekende frameworks en projecten zoals ZF, Symfony, Doctrine, Laravel en vele anderen.

Zoals Light al aangeeft heb je nu namespaces. Moderne frameworks maken daar al dankbaar gebruik van. Hiervoor zag je veelvuldig de underscore-notatie (bijv Zend_View_Helper_Abstract) om conflicten te voorkomen. In beide constructies wordt de projectnaam als primaire prefix/namespace gebruikt.
Ik ben al wat sites aan het doornemen over namespaces; lijkt niet heel ingewikkeld als ik het zo zie. Binnenkort zelf maar even wat mee gaan experimenteren. Je leert immers het snelst door het gewoon te doen :)
  Moderator / Redactie Sport / Devops maandag 13 januari 2014 @ 22:35:14 #113
176766 crew  zoem
zoemt
pi_135460024
quote:
5s.gif Op maandag 13 januari 2014 21:56 schreef bondage het volgende:

[..]

Wat is trouwens je redenatie daarachter? Ik had juist voor $_REQUEST gekozen omdat deze zowel de GET als POST waarden bevat. Ik doe het eigenlijk altijd zo en ben nog nooit tegen problemen aangelopen.
Nadeel is dat $_REQUEST de data uit $_GET, $_POST en $_COOKIE combineert. Dat creëert 2 potentiele problemen:

1) De data van $_COOKIE, $_POST en $_GET overschrijven elkaar als er dezelfde keys bestaan, wat kan leiden tot onverwacht gedrag. De standaarvolgorde is G, P en dan C.
2) Omdat $_COOKIE voorrang heeft op $_GET en $_POST, kan er mogelijk cookiedata op onveilige plekken terechtkomen.

NB: De volgorde en de aanwezigheid van cookiedata hangt af van de php.ini directives.
quote:
14s.gif Op maandag 13 januari 2014 22:26 schreef bondage het volgende:

[..]

Ik ben al wat sites aan het doornemen over namespaces; lijkt niet heel ingewikkeld als ik het zo zie. Binnenkort zelf maar even wat mee gaan experimenteren. Je leert immers het snelst door het gewoon te doen :)
Zeker, gewoon ermee aan de slag gaan werkt het beste :Y
  FOK!mycroftheld maandag 13 januari 2014 @ 22:49:51 #114
128465 verified  bondage
niet meer aanwezig op FOK!
pi_135460816
quote:
0s.gif Op maandag 13 januari 2014 22:35 schreef zoem het volgende:

[..]

Nadeel is dat $_REQUEST de data uit $_GET, $_POST en $_COOKIE combineert. Dat creëert 2 potentiele problemen:

1) De data van $_COOKIE, $_POST en $_GET overschrijven elkaar als er dezelfde keys bestaan, wat kan leiden tot onverwacht gedrag. De standaarvolgorde is G, P en dan C.
2) Omdat $_COOKIE voorrang heeft op $_GET en $_POST, kan er mogelijk cookiedata op onveilige plekken terechtkomen.
Ai, dat is best wel naatje. Het zal waarschijnlijk niet zo snel voorkomen omdat ik erg goed let op de naamgeving van mijn cookie, post en get vars door er iets voor te zetten maar je weet echter maar nooit... Binnenkort maar ff mijn request classes gaan verbouwen ;(
pi_135461093
quote:
11s.gif Op maandag 13 januari 2014 22:49 schreef bondage het volgende:

[..]

Ai, dat is best wel naatje. Het zal waarschijnlijk niet zo snel voorkomen omdat ik erg goed let op de naamgeving van mijn cookie, post en get vars door er iets voor te zetten maar je weet echter maar nooit... Binnenkort maar ff mijn request classes gaan verbouwen ;(
Dit is mijne

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    
namespace System\Helpers;

    class 
Request {

        public static function 
isPost() {
            return (
$_SERVER['REQUEST_METHOD'] == 'POST')?true:false;
        }

        public static function 
get($key) {
            return isset(
$_GET[$key])?$_GET[$key]:false;
        }

        public static function 
post($key) {
            return isset(
$_POST[$key])?$_POST[$key]:false;
        }

    }
?>
  Moderator / Redactie Sport / Devops dinsdag 14 januari 2014 @ 11:43:43 #116
176766 crew  zoem
zoemt
pi_135472902
quote:
0s.gif Op maandag 13 januari 2014 22:55 schreef totalvamp het volgende:

[..]

Dit is mijne
[ code verwijderd ]

Deze code
1
2
3
<?php
return ($_SERVER['REQUEST_METHOD'] == 'POST')?true:false;
?>
is hetzelfde als dit
1
2
3
<?php
return $_SERVER['REQUEST_METHOD'] == 'POST';
?>
:)
pi_135487250
quote:
0s.gif Op dinsdag 14 januari 2014 11:43 schreef zoem het volgende:

[..]

Deze code
[ code verwijderd ]

is hetzelfde als dit
[ code verwijderd ]

:)
Heel erg waar :P
Ik copy paste vaak mijn oudere classes aangezien de functionaliteit hetzelfde blijft :P
wel een erg domme 'fout'.
pi_135495471
quote:
0s.gif Op maandag 13 januari 2014 22:35 schreef zoem het volgende:

[..]

Nadeel is dat $_REQUEST de data uit $_GET, $_POST en $_COOKIE combineert. Dat creëert 2 potentiele problemen:

1) De data van $_COOKIE, $_POST en $_GET overschrijven elkaar als er dezelfde keys bestaan, wat kan leiden tot onverwacht gedrag. De standaarvolgorde is G, P en dan C.
2) Omdat $_COOKIE voorrang heeft op $_GET en $_POST, kan er mogelijk cookiedata op onveilige plekken terechtkomen.

NB: De volgorde en de aanwezigheid van cookiedata hangt af van de php.ini directives.
Je linkt naar de ini directive variables_order, terwijl eigenlijk request_order wordt gebruikt om $_REQUEST te vullen. In beide kun je ook E en S vinden (Environment en Server).
  Moderator / Redactie Sport / Devops dinsdag 14 januari 2014 @ 21:18:02 #119
176766 crew  zoem
zoemt
pi_135495653
quote:
0s.gif Op dinsdag 14 januari 2014 21:15 schreef Light het volgende:

[..]

Je linkt naar de ini directive variables_order, terwijl eigenlijk request_order wordt gebruikt om $_REQUEST te vullen. In beide kun je ook E en S vinden (Environment en Server).
Heb je helemaal gelijk in, maar:
quote:
request_order string
If this directive is not set, variables_order is used for $_REQUEST contents.
Met variables_order als anchor staan ze allebei in beeld :P Was even uit praktische overweging.
  woensdag 15 januari 2014 @ 12:57:53 #120
230788 n8n
Pragmatisch
pi_135516177
Specialization is for insects”.—Robert Heinlein
pi_135526718
quote:
0s.gif Op maandag 13 januari 2014 21:34 schreef Light het volgende:

[..]

Tegenwoordig heeft PHP namespaces om dat soort conflicten te voorkomen.
Ik vind het nogal lelijk in php eerlijk gezegd :P
..///
pi_135534307
quote:
0s.gif Op woensdag 15 januari 2014 17:41 schreef wipes66 het volgende:

[..]

Ik vind het nogal lelijk in php eerlijk gezegd :P
Waarom precies?
Tegenwoordig moet je Dr. Ir. zijn om een beetje correct Nederlands te kunnen neerpleuren.
Abusing semicolons since 1987.
pi_135536574
quote:
0s.gif Op woensdag 15 januari 2014 20:07 schreef rekenwonder het volgende:

[..]

Waarom precies?
Omdat het net lijkt of je een letter escaped zeg maar.
..///
pi_135538850
quote:
0s.gif Op woensdag 15 januari 2014 20:47 schreef wipes66 het volgende:

[..]

Omdat het net lijkt of je een letter escaped zeg maar.
namespaces zijn juist een verademing en ik word er blij van in de code :P
Geeft veel duidelijker weer waar een class toebehoord
pi_135542427
De keuze voor de backslash was inderdaad een merkwaardige.
Tegenwoordig moet je Dr. Ir. zijn om een beetje correct Nederlands te kunnen neerpleuren.
Abusing semicolons since 1987.
pi_135544413
quote:
0s.gif Op woensdag 15 januari 2014 22:31 schreef rekenwonder het volgende:
De keuze voor de backslash was inderdaad een merkwaardige.
Waar had jij voor gekozen?
pi_135550044
quote:
0s.gif Op woensdag 15 januari 2014 23:16 schreef totalvamp het volgende:

[..]

Waar had jij voor gekozen?
Punt. Wat jij?
Tegenwoordig moet je Dr. Ir. zijn om een beetje correct Nederlands te kunnen neerpleuren.
Abusing semicolons since 1987.
pi_135550141
quote:
0s.gif Op donderdag 16 januari 2014 07:52 schreef rekenwonder het volgende:

[..]

Punt. Wat jij?
Nadeel is dat de punt ook wordt gebruikt met het koppelen van strings.

Ik vind het zo wel best, voor mij maakt het niet heel veel uit.
  donderdag 16 januari 2014 @ 08:17:07 #130
187069 slacker_nl
Sicko pur sang
pi_135550246
:: wellicht: Dit::is::Mijn::Namespace::yo
In theory there is no difference between theory and practice. In practice there is.
pi_135550309
quote:
0s.gif Op donderdag 16 januari 2014 08:17 schreef slacker_nl het volgende:
:: wellicht: Dit::is::Mijn::Namespace::yo
Je gebruikt dat al voor static calls.
pi_135550548
quote:
0s.gif Op donderdag 16 januari 2014 08:23 schreef totalvamp het volgende:

[..]

Je gebruikt dat al voor static calls.
Net als bij C++ dus, waar :: voor namespaces en statics wordt gebruikt.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  donderdag 16 januari 2014 @ 08:45:54 #133
187069 slacker_nl
Sicko pur sang
pi_135550593
quote:
0s.gif Op donderdag 16 januari 2014 08:23 schreef totalvamp het volgende:

[..]

Je gebruikt dat al voor static calls.
Dat is in Perl ook zo. Niks geen probleem.
In theory there is no difference between theory and practice. In practice there is.
pi_135550623
Ohja en een (of twee?) forward slash had ik al een stuk mooier gevonden. Backslash :r
pi_135550675
quote:
14s.gif Op donderdag 16 januari 2014 08:48 schreef KomtTijd... het volgende:
Ohja en een (of twee?) forward slash had ik al een stuk mooier gevonden. Backslash :r
Dan heb je weer een probleem bij berekeningen '10 / 5'.
De backslash is indertijd op het laatst gekozen (2008 IIRC).
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_135550938
quote:
7s.gif Op donderdag 16 januari 2014 08:43 schreef Aether het volgende:

[..]

Net als bij C++ dus, waar :: voor namespaces en statics wordt gebruikt.
quote:
0s.gif Op donderdag 16 januari 2014 08:45 schreef slacker_nl het volgende:

[..]

Dat is in Perl ook zo. Niks geen probleem.
Ik snap het ook niet dan. maarja bij PHP doen ze wel meer dingen op een andere manier.
  donderdag 16 januari 2014 @ 09:33:23 #137
125913 Devolution
Beep beep Richie
pi_135551258
Het blijft een vies samenraapsel maar ik hou er desondanks alsnog van O+
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
pi_135551418
Oorspronkelijke voorstellen:
https://wiki.php.net/rfc/namespaceseparator
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_135624711
quote:
0s.gif Op donderdag 16 januari 2014 08:05 schreef totalvamp het volgende:

[..]

Nadeel is dat de punt ook wordt gebruikt met het koppelen van strings.
Beetje parser kan dat wel handelen. Dat het namespace-statement het eerste statement in een script moet zijn, zou al genoeg hint moeten zijn voor de parser om het te kunnen handelen.

Maar goed, allemaal details :-) Minder relevant dan het al dan niet hebben van namespaces in een taal.
Tegenwoordig moet je Dr. Ir. zijn om een beetje correct Nederlands te kunnen neerpleuren.
Abusing semicolons since 1987.
pi_135631494
quote:
7s.gif Op donderdag 16 januari 2014 09:42 schreef Aether het volgende:
Oorspronkelijke voorstellen:
https://wiki.php.net/rfc/namespaceseparator
Dan is de \ nog de betere met de rest die daar staat...

:)en :> :') .....

[ Bericht 6% gewijzigd door #ANONIEM op 18-01-2014 02:18:29 ]
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')