Huiverig wordt ik ervan, automatisch files laden, expliciet aangeven welke klasse je wilt gebruiken in je module.quote: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
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.quote: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?
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.quote: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.
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); ?> |
$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 )quote:Op vrijdag 28 februari 2014 18:59 schreef terdege het volgende:
Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
[ Bericht 16% gewijzigd door #ANONIEM op 28-02-2014 19:09:51 ]
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.quote: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 ]
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#.quote: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.
Netheid? Dat je ook dit "kan" doen met echo's betekend ook niet dat je het moet.quote: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?
1 2 3 | <?php echo "ik echo deze $waarde naar buiten op een nekshot waardige manier"; ?> |
1 2 3 | <?php echo ($ditIsTrue) ? 'dit was dus waar' : 'dit niet'; ?> |
Haakjes gebruiken met include etc is iets van de vroegere PHP versies, tegenwoordig zou ik ze niet meer gebruiken.quote: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.
[ code verwijderd ]
En vanaf PHP5 kan je heel aardig OO werken en vanaf PHP 5.3/5.4 is het imo prima voor elkaar.
1 2 3 4 5 6 7 8 9 | <?php if($true) { return 'ja'; } else { return 'nee'; } return $true?'ja':'nee'; ?> |
Ik denk dat CrashO doelde op de <?= shorthand.quote: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 zie geen short open tag staan in zijn reactiequote:Op vrijdag 28 februari 2014 20:21 schreef papernote het volgende:
[..]
Ik denk dat CrashO doelde op de <?= shorthand.
Dat fixte de php tag van Fok ongewild automagisch voor me , stond er wel.quote:Op vrijdag 28 februari 2014 20:27 schreef zoem het volgende:
[..]
Ik zie geen short open tag staan in zijn reactie
1 2 3 4 | <?= require 'test.php'; echo 1; |
Eh. Nee. Dat probeerden we hierboven ook allemaal uit te leggenquote:Op vrijdag 28 februari 2014 20:51 schreef Robuustheid het volgende:
Met PHP,
In plaats van <?php en ?>
Kun je ook slechts bij <?= houden.
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.quote: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?
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.quote: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#.
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.quote:Op vrijdag 28 februari 2014 20:31 schreef CrashO het volgende:
[..]
Dat fixte de php tag van Fok ongewild automagisch voor me , 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'?>
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.quote: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.
1 2 3 4 5 6 7 8 | <script> document.write("test") </script> <?php echo 0; ?> |
Waar komt die spatie vandaan? Die kan toch niet door Javascript geïmplementeerd zijn?quote:test 0
Python was juist gemaakt voor OO.quote: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.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |