abonnement Unibet Coolblue
  vrijdag 28 februari 2014 @ 18:22:19 #126
187069 slacker_nl
Sicko pur sang
pi_137245644
quote:
0s.gif Op vrijdag 28 februari 2014 14:23 schreef wipes66 het volgende:

[ code verwijderd ]

+ psr-0 autoloader en de rest gaat automatisch. geen includes, geen loader class. eleganter kan niet denk ik :P
Huiverig wordt ik ervan, automatisch files laden, expliciet aangeven welke klasse je wilt gebruiken in je module.

Hoe werkt autoloader eigenlijk, als ik t/inc/Net/LDAP.php heb en een lib/Net/LDAP.php, kan ik dan zeggen dat t/inc gebruikt moet worden of dat lib gebruikt moet worden?
In theory there is no difference between theory and practice. In practice there is.
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 18:36:00 #127
176766 crew  zoem
zoemt
pi_137245943
quote:
0s.gif Op vrijdag 28 februari 2014 18:22 schreef slacker_nl het volgende:

[..]

Huiverig wordt ik ervan, automatisch files laden, expliciet aangeven welke klasse je wilt gebruiken in je module.

Hoe werkt autoloader eigenlijk, als ik t/inc/Net/LDAP.php heb en een lib/Net/LDAP.php, kan ik dan zeggen dat t/inc gebruikt moet worden of dat lib gebruikt moet worden?
Ja, want de classloaders kunnen het pad achterhalen dmv de classname of namespace. Vroeger zag je vaak de "Vendor_My_Awesome_Class" constructie, waarbij underscores door slashes werden vervangen in de autoloader. Moderne frameworks gebruiken nu namespaces, waarbij de namespace separator wordt gebruikt voor het resolven van het pad. Een vereiste is dus dat er een toplevel namespace moet zijn.

Zie verder https://github.com/php-fi(...)er/accepted/PSR-0.md
pi_137246605
@ OO discussie. Ik weet hoe ik OO moet programmeren maar ik heb geen ervaring met PHP. Ik heb vervolgens geleerd om aparte PHP bestanden te maken voor verschillende taken die dan aan te roepen met behulp van JSON. Bijvoorbeeld: als iemand op een rode knop drukt wordt rodeknop.php uitgevoerd. Dit is dus geen goede manier om PHP te gebruiken?

quote:
0s.gif Op donderdag 27 februari 2014 21:33 schreef Light het volgende:

[..]

Dat zou gewoon moeten werken. Maar het is wat lastig om je te helpen zolang niet duidelijk is wat er gebeurt als je de code in functies hebt staan.

Tip: plaats php code tussen
[ code verwijderd ]

voor leuke kleurtjes en regelnummers enzo.
Vanuit HTML wordt een PHP bestand met deze code aangeroepen als iemand ergens op klikt. Het is vrij simpel. Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.

1
2
3
4
5
6
7
8
9
<?php
    
include 'dbconnect.php';
    
test();

    function 
test(){
        
mysqli_query($link'UPDATE tablename SET Rowname=5');
    }
    
mysqli_close($link);
?>
pi_137246907
quote:
0s.gif Op vrijdag 28 februari 2014 18:59 schreef terdege het volgende:
Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.
$link binnen je functie `test` gaat niet werken. Die zit in een andere scope. Als je hem daar wilt gebruiken zal je hem moeten meegeven. (of OO gaan en een property binnen je class aanspreken O-) )
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.


[ Bericht 16% gewijzigd door #ANONIEM op 28-02-2014 19:09:51 ]
pi_137246962
quote:
0s.gif Op vrijdag 28 februari 2014 18:59 schreef terdege het volgende:
@ OO discussie. Ik weet hoe ik OO moet programmeren maar ik heb geen ervaring met PHP. Ik heb vervolgens geleerd om aparte PHP bestanden te maken voor verschillende taken die dan aan te roepen met behulp van JSON. Bijvoorbeeld: als iemand op een rode knop drukt wordt rodeknop.php uitgevoerd. Dit is dus geen goede manier om PHP te gebruiken?

[..]

Vanuit HTML wordt een PHP bestand met deze code aangeroepen als iemand ergens op klikt. Het is vrij simpel. Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.
[ code verwijderd ]

Wat je doet heeft niets met OO te maken, maar dat wil niet zeggen dat het 'geen goede manier'is. Als je OO wilt programmeren zul je toch echt classes, namespaces, methods enz. moeten gaan gebruiken.

Je functie in dat voorbeeld zal waarschijnlijk een foutmelding geven dat $link niet gedefinieerd is maar ik zie niet waarom hij niet uitgevoerd zou worden.
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 19:12:06 #131
176766 crew  zoem
zoemt
pi_137247023
Daarom ook altijd error reporting aanzetten :)
pi_137247758
OOP vind ik vreselijk werken in PHP. Het is niet lekker om MVC te programmeren zonder dat je die frameworks gebruikt.
pi_137248349
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
pi_137248384
quote:
9s.gif Op vrijdag 28 februari 2014 19:29 schreef robin007bond het volgende:
OOP vind ik vreselijk werken in PHP. Het is niet lekker om MVC te programmeren zonder dat je die frameworks gebruikt.
PHP was in beginsel ook niet voor OOP gemaakt. Als je graag OOP wilt doen, dan zou ik m'n licht opsteken bij C++/Java/C#.
pi_137248440
quote:
0s.gif Op vrijdag 28 februari 2014 19:42 schreef Robuustheid het volgende:
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
Netheid? Dat je ook dit "kan" doen met echo's betekend ook niet dat je het moet.
1
2
3
<?php
echo "ik echo deze $waarde naar buiten op een nekshot waardige manier";
?>
Zoals zoveel dingen in php kan je het netjes doen en het ranzig doen.
Shorthand notaties zijn ook zoiets. :r
1
2
3
<?php
echo ($ditIsTrue) ? 'dit was dus waar' 'dit niet';
?>
En vanaf PHP5 kan je heel aardig OO werken en vanaf PHP 5.3/5.4 is het imo prima voor elkaar.

[ Bericht 12% gewijzigd door #ANONIEM op 28-02-2014 19:52:29 ]
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 19:53:16 #136
176766 crew  zoem
zoemt
pi_137248775
Wat is er mis met de ternary operator? Daar zijn prima use cases voor, maar niet elk conditional statement leent zich ervoor.
pi_137249330
quote:
99s.gif Op vrijdag 28 februari 2014 19:45 schreef CrashO het volgende:

[..]

Netheid? Dat je ook dit "kan" doen met echo's betekend ook niet dat je het moet.
[ code verwijderd ]

Zoals zoveel dingen in php kan je het netjes doen en het ranzig doen.
Shorthand notaties zijn ook zoiets. :r
[ code verwijderd ]

En vanaf PHP5 kan je heel aardig OO werken en vanaf PHP 5.3/5.4 is het imo prima voor elkaar.
Haakjes gebruiken met include etc is iets van de vroegere PHP versies, tegenwoordig zou ik ze niet meer gebruiken.

Shorthand is juist onwijs handig en maak ik dankbaar gebruik van.

1
2
3
4
5
6
7
8
9
<?php
if($true) {
  return 
'ja';
} else {
  return 
'nee';
}

return 
$true?'ja':'nee';
?>
pi_137249815
quote:
0s.gif Op vrijdag 28 februari 2014 19:53 schreef zoem het volgende:
Wat is er mis met de ternary operator? Daar zijn prima use cases voor, maar niet elk conditional statement leent zich ervoor.
Ik denk dat CrashO doelde op de <?= shorthand.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 20:27:47 #139
176766 crew  zoem
zoemt
pi_137249994
quote:
3s.gif Op vrijdag 28 februari 2014 20:21 schreef papernote het volgende:

[..]

Ik denk dat CrashO doelde op de <?= shorthand.
Ik zie geen short open tag staan in zijn reactie :?
pi_137250114
quote:
0s.gif Op vrijdag 28 februari 2014 20:27 schreef zoem het volgende:

[..]

Ik zie geen short open tag staan in zijn reactie :?
Dat fixte de php tag van Fok ongewild automagisch voor me :P, stond er wel.
Maar ik bedoel ook op beide de shorthand (shorthand echo en shorthand if/else (met tarnary operator).
Wilde eigenlijk zoiets neerzetten.
<?=($ditIsTrue) ? 'dit was dus waar' : 'dit niet'?>

[ Bericht 1% gewijzigd door #ANONIEM op 28-02-2014 20:32:00 ]
pi_137250833
Met PHP,

In plaats van <?php en ?>

Kun je ook slechts bij <?= houden.

Maar dan krijg ik vreemde dingen te zien.

Als ik zo doe:

1
2
3
4
<?=

require 'test.php';
echo 1;

Dan is de output 11.

Als ik vervolgens require weglaat, dan krijg ik een error met melding dat-ie de echo niet verwachtte. Hoe zit dit precies?
pi_137250993
quote:
0s.gif Op vrijdag 28 februari 2014 20:51 schreef Robuustheid het volgende:
Met PHP,
In plaats van <?php en ?>

Kun je ook slechts bij <?= houden.
Eh. Nee. Dat probeerden we hierboven ook allemaal uit te leggen :P
<?=$henk?> doet feitelijk hetzelfde als <?php echo $henk; ?>

Wat jij nodig hebt is <? (shorttags) . Dit doet hetzelfde als <?php
(maar het is netter omdat overal altijd gewoon <?php te gebruiken omdat shorttags in de config aan moeten staan om ze te kunnen gebruiken. En <?php gewoon overal werkt.

Wat bij jou nu gebeurt is dat <?=require 'test.php'; de response van de require echo't (dat is true wanneer het includen lukt, dus 1). en daarna de echo '1'. Dus dan krijg je 11. Als je de require weglaat doe je eigenlijk echo echo '1'; en staat er dus een echo teveel waarop hij dood gaat :P

[ Bericht 8% gewijzigd door #ANONIEM op 28-02-2014 20:58:04 ]
pi_137251612
Zeer verhelderende uitleg, thanks CrashO!
pi_137255485
quote:
0s.gif Op vrijdag 28 februari 2014 19:42 schreef Robuustheid het volgende:
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
In PHP heb je bij language constructs als require/include/reuquire_once/include_once (en ook echo, en nog een aantal) geen haakjes nodig. Je mag ze wel gebruiken, dan ziet het er iets meer uit als een gewone functie-aanroep.
  Moderator / Redactie Sport / Devops zaterdag 1 maart 2014 @ 00:15:32 #145
176766 crew  zoem
zoemt
pi_137260427
Op SO staat wel een leuke uitleg over language constructs, mocht iemand zin hebben om er meer over te lezen. Zie ook de list of keywords op php.net.
pi_137260670
quote:
1s.gif Op vrijdag 28 februari 2014 19:43 schreef Robuustheid het volgende:

[..]

PHP was in beginsel ook niet voor OOP gemaakt. Als je graag OOP wilt doen, dan zou ik m'n licht opsteken bij C++/Java/C#.

Die talen kan ik ook wel. Het probleem is dat het niet zo geschikt is voor web development. Je hebt wel JSP, maar dat schijnt niet zo lekker te werken. C# kan i.c.m. ASP.net, maar ik heb een gruwelijke hekel aan Microsoft dus dat gaat 'em niet worden. ;(

Misschien is Python i.c.m. Django dan nog het beste.
  zaterdag 1 maart 2014 @ 00:25:57 #147
12221 Tijn
Powered by MS Paint
pi_137260675
quote:
99s.gif Op vrijdag 28 februari 2014 20:31 schreef CrashO het volgende:

[..]

Dat fixte de php tag van Fok ongewild automagisch voor me :P, stond er wel.
Maar ik bedoel ook op beide de shorthand (shorthand echo en shorthand if/else (met tarnary operator).
Wilde eigenlijk zoiets neerzetten.
<?=($ditIsTrue) ? 'dit was dus waar' : 'dit niet'?>
In views/templates is deze syntax echt superhandig. Sowieso zou ik bij het toewijzen van een waarde aan een variabele op basis van een conditie altijd de ternary operator gebruiken, dan heb je maar 1x de variabele nodig die je wilt vullen.
pi_137263102
quote:
1s.gif Op zaterdag 1 maart 2014 00:25 schreef robin007bond het volgende:

[..]

Die talen kan ik ook wel. Het probleem is dat het niet zo geschikt is voor web development. Je hebt wel JSP, maar dat schijnt niet zo lekker te werken. C# kan i.c.m. ASP.net, maar ik heb een gruwelijke hekel aan Microsoft dus dat gaat 'em niet worden. ;(

Misschien is Python i.c.m. Django dan nog het beste.
Python was oorspronkelijk niet zo gericht op OO, omdat de bedenker ervan de OO niet zo relevant vond. Maar het leent zich ook beter voor dan PHP. Python is sowieso een betere taal dan PHP, er zitten geen rare syntax-gewoonten in. En PHP is sterk gefragmenteerd met al die frameworks zoals Symfony, Zend, CodeIgniter, etc. Dat kost je meer tijd om te leren dan de taal zelf. Met Python zit je meestal vast aan Django, dus dat scheelt je naar verhouding minder tijd.
pi_137263106
Trouwens, een vraag:
1
2
3
4
5
6
7
8
<script>
  document.write("test")
</script>
<?php 

echo 0; 

?> 

Output:
quote:
test 0
Waar komt die spatie vandaan? Die kan toch niet door Javascript geïmplementeerd zijn?
  zaterdag 1 maart 2014 @ 08:46:38 #150
187069 slacker_nl
Sicko pur sang
pi_137263953
quote:
0s.gif Op zaterdag 1 maart 2014 03:00 schreef Robuustheid het volgende:

[..]

Python was oorspronkelijk niet zo gericht op OO, omdat de bedenker ervan de OO niet zo relevant vond. Maar het leent zich ook beter voor dan PHP. Python is sowieso een betere taal dan PHP, er zitten geen rare syntax-gewoonten in. En PHP is sterk gefragmenteerd met al die frameworks zoals Symfony, Zend, CodeIgniter, etc. Dat kost je meer tijd om te leren dan de taal zelf. Met Python zit je meestal vast aan Django, dus dat scheelt je naar verhouding minder tijd.
Python was juist gemaakt voor OO.
In theory there is no difference between theory and practice. In practice there is.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')