Wat is de code die je gebruikt waarbij je deze error krijgt?quote:Op dinsdag 3 juni 2014 15:01 schreef n8n het volgende:
PDO staat geïnstalleerd en actief als ik phpinfo en "print_r( get_loaded_extensions() );" mag geloven. Toch krijg ik een error die zegt: "could not find driver". wat is omhoog met deze?
Wat geeft dit terug?quote:Op dinsdag 3 juni 2014 15:01 schreef n8n het volgende:
PDO staat geïnstalleerd en actief als ik phpinfo en "print_r( get_loaded_extensions() );" mag geloven. Toch krijg ik een error die zegt: "could not find driver". wat is omhoog met deze?
1 2 3 | <?php print_r(PDO::getAvailableDrivers()); ?> |
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 | <?php if ($foo != 2) { echo $bar; } elseif ($foo == 3) { echo $bar; } else { echo $bar; } switch ($foo) { case 1: echo $bar; break; case 2: echo $bar; break; case 3: echo $bar; break; case 4: echo $bar; break; echo $bar; default: } ?> |
quote:Op dinsdag 3 juni 2014 15:04 schreef totalvamp het volgende:
[..]
Wat is de code die je gebruikt waarbij je deze error krijgt?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php class database { public static function connect() { try { $pdo = new PDO(' mysql:host='. setup::database('host') .'; dbname='. setup::database('name'), setup::database('user'), setup::database('password') ); } catch(PDOException $error) { print 'Error: ' . $error->getMessage(); die(); } } } database::connect(); |
Array ( [0] => mysql [1] => sqlite [2] => dblib [3] => pgsql )quote:Op dinsdag 3 juni 2014 15:04 schreef Aether het volgende:
[..]
Wat geeft dit terug?
[ code verwijderd ]
Hij staat dus niet geïnstalleerd.quote:Op dinsdag 3 juni 2014 15:06 schreef n8n het volgende:
[..]
Array ( [0] => mysql [1] => sqlite [2] => dblib [3] => pgsql )
Dat zijn de beschikbare PDO drivers, staat er dus wel op.quote:
Wat als je even je gegevens letterlijk invult? Zonder variabelen aan te roepen.quote:
PDO is toch ook een interface en geen database-typequote:Op dinsdag 3 juni 2014 15:07 schreef totalvamp het volgende:
[..]
Dat zijn de beschikbare PDO drivers, staat er dus wel op.
Kloptquote:Op dinsdag 3 juni 2014 15:09 schreef n8n het volgende:
[..]
PDO is toch ook een interface en geen database-type
zelfde error helaasquote:Op dinsdag 3 juni 2014 15:07 schreef totalvamp het volgende:
Wat als je even je gegevens letterlijk invult? Zonder variabelen aan te roepen.
Ja, maar je hebt wel verschillende drivers nodig zodat de interface je queries kan vertalen naar de sql voor dat type database.quote:Op dinsdag 3 juni 2014 15:09 schreef n8n het volgende:
[..]
PDO is toch ook een interface en geen database-type
met mijn vermeende drivers kan ik dus praten met dat lijstje (behalve dat het niet werkt)quote:Op dinsdag 3 juni 2014 15:11 schreef totalvamp het volgende:
[..]
Ja, maar je hebt wel verschillende drivers nodig zodat de interface je queries kan vertalen naar de sql voor dat type database.
Probeer eens Apache te herstarten (heel soms helpt het)quote:Op dinsdag 3 juni 2014 15:12 schreef n8n het volgende:
[..]
met mijn vermeende drivers kan ik dus praten met dat lijstje (behalve dat het niet werkt)
dat heb ik al een aantal keer gedaan, ook in php.ini een regel van stackoverflow uncommented maar geen soelaasquote:Op dinsdag 3 juni 2014 15:13 schreef totalvamp het volgende:
[..]
Probeer eens Apache te herstarten (heel soms helpt het)
Post heel je php.ini hier eens dan. (even in code tags of spoiler)quote:Op dinsdag 3 juni 2014 15:15 schreef n8n het volgende:
[..]
dat heb ik al een aantal keer gedaan, ook in php.ini een regel van stackoverflow uncommented maar geen soelaas
ga ik zo doen, even roken. Moet ook even kijken want heb nu alles via Brew geïnstalleerd en volgens mij installeert dat php op een andere locatie.quote:Op dinsdag 3 juni 2014 15:16 schreef totalvamp het volgende:
[..]
Post heel je php.ini hier eens dan. (even in code tags of spoiler)
Ahh je zit op OSX?quote:Op dinsdag 3 juni 2014 15:18 schreef n8n het volgende:
[..]
ga ik zo doen, even roken. Moet ook even kijken want heb nu alles via Brew geïnstalleerd en volgens mij installeert dat php op een andere locatie.
Schrijf de eerste parameter (DNS) eens als één regel. Misschien dat de white space problemen geeft.quote:Op dinsdag 3 juni 2014 15:18 schreef n8n het volgende:
[..]
ga ik zo doen, even roken. Moet ook even kijken want heb nu alles via Brew geïnstalleerd en volgens mij installeert dat php op een andere locatie.
Dit bedoel ik ook met de opmerking even alle vars weghalenquote:Op dinsdag 3 juni 2014 15:20 schreef Aether het volgende:
[..]
Schrijf de eerste parameter (DNS) eens als één regel. Misschien dat de white space problemen geeft.
dat was 'm. had er niet op gerekend dat het uit zou makenquote:Op dinsdag 3 juni 2014 15:20 schreef Aether het volgende:
[..]
Schrijf de eerste parameter (DNS) eens als één regel. Misschien dat de white space problemen geeft.
Ja eerst met MAMP en toen moest ik naar Homebrew want dat zou alles makkelijker makenquote:
Oops ja sorryquote:Op dinsdag 3 juni 2014 15:22 schreef totalvamp het volgende:
[..]
Dit bedoel ik ook met de opmerking even alle vars weghalenMisschien was ik niet duidelijk genoeg xD
Ik snap je haha, ik probeer ook altijd alles duidelijk te maken op die manier. Je zal dit iig nooit meer fout doenquote:Op dinsdag 3 juni 2014 15:23 schreef n8n het volgende:
[..]
Oops ja sorryBen 'gewend' dat code over meerdere regels kan en hou niet van lange regels dus ik zet grote statements vaak in blokken
Zet eerst het statement wel in een variabele en dan doe ik het alsnog met blokken.quote:Op dinsdag 3 juni 2014 15:24 schreef totalvamp het volgende:
[..]
Ik snap je haha, ik probeer ook altijd alles duidelijk te maken op die manier. Je zal dit iig nooit meer fout doen
Dat is ook nog een optie, alleen eigenlijk niet nodig voor deze lijn code.quote:Op dinsdag 3 juni 2014 15:26 schreef n8n het volgende:
[..]
Zet eerst het statement wel in een variabele en dan doe ik het alsnog met blokken.
quote:Op dinsdag 3 juni 2014 15:24 schreef slacker_nl het volgende:
http://blogs.atlassian.co(...)ck-ass-code-reviews/
Dan is sprintf een betere in sommige gevallen:quote:Op dinsdag 3 juni 2014 15:23 schreef n8n het volgende:
[..]
Oops ja sorryBen 'gewend' dat code over meerdere regels kan en hou niet van lange regels dus ik zet grote statements vaak in blokken.
Bedankt allemaal ben blij dat het zo simpel was maar moet het maar net weten
1 2 3 4 5 6 7 8 9 | <?php $pdo = new PDO( sprintf('mysql:host=%s;dbname=%s', setup::database('host'), setup::database('name') ), setup::database('user'), setup::database('password') ); ?> |
Ik vind het vooral moelijk lelijk als de open- en sluit curlybrace niet op dezelfde indent staan. En ook als er na een sluitende curlybrace direct een nieuw statement komt zonder newline.quote:Op dinsdag 3 juni 2014 15:04 schreef Sitethief het volgende:
Ben ik echt de enige die dit doet?
[ code verwijderd ]
Ik vind het echt raar dat de curly brace die een if statement afsluit niet inspringt en de break die een case afsluit wel, ik vind dat zo onoverzichtelijk, bij mij zitten case en break op dezelfde diepte. Ik merk dat ik de enige ben die dit doet..
quote:Op dinsdag 3 juni 2014 15:30 schreef Aether het volgende:
[..]
Dan is sprintf een betere in sommige gevallen:
[ code verwijderd ]
Ik vind het alleen maar onduidelijker, daarnaast gebruik je een extra functie die eigenlijk niet nodig hoort te zijnquote:Op dinsdag 3 juni 2014 15:30 schreef Aether het volgende:
[..]
Dan is sprintf een betere in sommige gevallen:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php class database { public static function connect() { try { $pdo = new PDO(' mysql:host='. setup::database('host') . ';dbname='. setup::database('name'), setup::database('user'), setup::database('password') ); } catch(PDOException $error) { print 'Error: ' . $error->getMessage(); die(); } } } |
Ja klopt, hahaha, maar heb een oplossing.quote:Op dinsdag 3 juni 2014 14:09 schreef Aether het volgende:
[..]
[ code verwijderd ]
Edit: je bedoelt dus iets anders.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php function fetch_object($query, $id) { foreach($this->properties as $val => $key) { $holder[$key] = ''; $reference_properties[$key] =& $holder[$key]; } $mysqli = base::open_connection(); $stmt = $mysqli->prepare($query); $id = $id; $stmt->bind_param("i", $id); call_user_func_array(array($stmt, 'bind_result'), $reference_properties); $stmt->execute(); $stmt->fetch(); $stmt->close(); $mysqli->close(); foreach($reference_properties as $key => $val) $this->{$key} = $val; return $this; } ?> |
die werkt ook niet, heb van alles geprobeerd nu, probleem is dat er ; en , in zitten met andere functies dan php verwacht. Beetje vreemd allemaal maar het zal wel, vind de sprintf nu wel oké, wordt toch een basale website dus niet alles hoeft optimaalquote:Op dinsdag 3 juni 2014 15:35 schreef totalvamp het volgende:
[..]
Ik vind het alleen maar onduidelijker, daarnaast gebruik je een extra functie die eigenlijk niet nodig hoort te zijn
Als je het dan op meerdere lijnen wilt doen, doe het dan zo:
[ code verwijderd ]
Je kunt bij een variabele wel op een nieuwe lijn springen aangezien hij dit niet ziet als string.
Je gebruikt een functie die er niet hoort te zijn? Je bent bezig met een string maken, wat is er mis met sprintf ? (ik ben groot voorstander van sprintf en tegen $x . 'iets' . $anders . "want" . $dit . '\' is echt ' . $kut;quote:Op dinsdag 3 juni 2014 15:35 schreef totalvamp het volgende:
[..]
Ik vind het alleen maar onduidelijker, daarnaast gebruik je een extra functie die eigenlijk niet nodig hoort te zijn
Als je het dan op meerdere lijnen wilt doen, doe het dan zo:
[ code verwijderd ]
Je kunt bij een variabele wel op een nieuwe lijn springen aangezien hij dit niet ziet als string.
sprintf maakt het er namelijk niet duidelijker op, niet dat een concat wel duidelijk is.quote:Op dinsdag 3 juni 2014 17:25 schreef slacker_nl het volgende:
[..]
Je gebruikt een functie die er niet hoort te zijn? Je bent bezig met een string maken, wat is er mis met sprintf ? (ik ben groot voorstander van sprintf en tegen $x . 'iets' . $anders . "want" . $dit . '\' is echt ' . $kut;
Zo doe ik het over het algemeen ook, alleen bij de break; nog 1 extra tabjequote:Op dinsdag 3 juni 2014 15:04 schreef Sitethief het volgende:
Ben ik echt de enige die dit doet?
[ code verwijderd ]
Ik vind het echt raar dat de curly brace die een if statement afsluit niet inspringt en de break die een case afsluit wel, ik vind dat zo onoverzichtelijk, bij mij zitten case en break op dezelfde diepte. Ik merk dat ik de enige ben die dit doet..
HEREDOC is ook niet altijd wensenlijk en "" werkt ook niet altijd, want als je met class methods gebruikt wilt het wel/niet interpoleren. IiG, in perl doet dat het niet, ik vermoed dat PHP dat ook niet doet, met sprintf kan je duidelijk zien, wat je verwacht, floats, doubles, etc etc.quote:Op dinsdag 3 juni 2014 17:39 schreef totalvamp het volgende:
[..]
sprintf maakt het er namelijk niet duidelijker op, niet dat een concat wel duidelijk is.
Je kunt altijd nog de vars binnen de quotes plaatsen, al is dat niet overal even slim.
Ook kun je lange strings plaatsen in een HEREDOC om het echt overzichtelijk te houden.
Maar iedereen heeft zo zijn voorkeur natuurlijk.
Beste 2 manieren zijn trouwens HEREDOC en tussen dubble quotes ""
Dat gaat dus wel, sinds de latere PHP versies heb je daar ondersteuning in.quote:Op dinsdag 3 juni 2014 17:51 schreef slacker_nl het volgende:
[..]
HEREDOC is ook niet altijd wensenlijk en "" werkt ook niet altijd, want als je met class methods gebruikt wilt het wel/niet interpoleren. IiG, in perl doet dat het niet, ik vermoed dat PHP dat ook niet doet, met sprintf kan je duidelijk zien, wat je verwacht, floats, doubles, etc etc.
$x = <<OEF
DIt is een vet lange $persoon->id gaat volgens mij ook fout in een heredoc.
OEF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php /* More complex example, with variables. */ class foo { var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<EOT My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should print a capital 'A': \x41 EOT; ?> |
Het is juist dat tabje wat ik zo raar vindquote:Op dinsdag 3 juni 2014 17:44 schreef mstx het volgende:
[..]
Zo doe ik het over het algemeen ook, alleen bij de break; nog 1 extra tabje
het is toch een actie binnen de case, aan de andere kant lijkt het ook op een endif; dus beide moet wel kunnen. break zonder extra indent maakt het wel wat leesbaarder voor mij.quote:Op dinsdag 3 juni 2014 18:01 schreef Sitethief het volgende:
[..]
Het is juist dat tabje wat ik zo raar vind.
Dat snap ik echt niet. De break is onderdeel van de switch statement namelijk.quote:Op dinsdag 3 juni 2014 18:01 schreef Sitethief het volgende:
[..]
Het is juist dat tabje wat ik zo raar vind.
Hmm, wellicht is het handig om te beginnen met het leren van normaliseren van databases.quote:Op dinsdag 3 juni 2014 20:37 schreef djkoelkast het volgende:
Ik wil al een tijd een programma maken waarmee ik mijn videobanden kan indexeren.
Bandnummer, wat er op staat, bijzonderheden, opmerkingen en dus per programma een begintijd/eindtijd.
Ik ben er aan begonnen in het voor mij bekende Autoplay Media Studio. Dat werkt volgens Luascript en die database kan ik gebruiken via sqlite3, maar ik vind het maar heel erg ingewikkeld, vooral omdat er gewoon amper documentatie over is (omdat sqlite3 een 3rd party plugin is voor APMS). Ik kan alle data wel in de db krijgen, maar ik krijg het er niet meer uit![]()
Enfin, het is niet meer dan een heleboel inputvelden, drop-downs, textfields en checkboxes eigenlijk en die moeten allemaal in een doorzoekbare database komen. Ik moet uiteindelijk op alles kunnen zoeken.
Dit kan natuurlijk ook gewoon in PHP/MySQL en volgens mij is dat A: makkelijker en B: is er veel meer documentatie over te vinden.
Ik heb wel wat html/php/mysql-kennis, maar ben wat dat betreft echt nog een beginner. Ik kan dingen aanpassen en meestal lukt dat ook wel, maar echt helemaal zelf hier dingen voor gaan schrijven is nieuw. Toch zou ik het willen proberen. Dan is het programma geen programma, maar een online database waarin ik:
Nieuwe records kan maken
Records kan bewerken
Zoeken in de records op alle mogelijke velden
Alle records weergeven in een lijst en die printbaar maken
Later:
Optie om geavanceerd te zoeken, bijvoorbeeld woord AAA maar alleen als bandtype B is.
Optie om andere databases (van andere mensen die hetzelfde gaan doen) te openen
Wellicht een optie om aan te klikken 'dit wil ik' en dat er dan een mailtje naar de recordhouder gaat.
Wachtwoord of liever beveiliging op accountniveau
Optie om een nieuwe database te beginnen
First things first:
Waar kan ik het beste beginnen, ik neem aan met het maken van een databaseconnectie en een database, maar dan. INSERT INTO ik ken het wel, maar ken de syntax niet. Zijn hier simpele voorbeelden van? Ook hoe ik meerdere velden in zo'n record maak.
Wat ik dus in 1 record zou willen hebben is:
Bandnummer
Systeem
Is de opname LP, Stereo, Slechte band, beschadigde band ofzo
Opmerkingenveld
En dan per tijdentry starttijd, eindtijd, omschrijving en een paar vinkjes zoals: compleet, komt onder een andere opname vandaan, gedigitaliseerd
Die tijdentries verschillen nogal, sommige banden heb je gewoon maar 1 ding op staan,
op een andere band kunnen wel 40 of 50 verschillende tijdentries staan. Dit moet dus ook voorzien zijn, dat je bijvoorbeeld 20 tijdentries op het scherm ziet en er met een knop meer bij kunt doen (of een volgende pagina begint, maar die eerste dingen van bandnummer tot opmerkingen blijven hetzelfde).
De primary key is dus eigenlijk het bandnummer.
Hellupie, hullepie
Die tab zorgt ervoor dat je alle case-statements op 1 lijn hebt en alle code die uitgevoerd wordt voor een case een niveau dieper. En je kunt ook meerdere case-statements hebben zonder break ertussen, dat is dan een reden voor een groter blok op de indent van de case:quote:Op dinsdag 3 juni 2014 18:01 schreef Sitethief het volgende:
[..]
Het is juist dat tabje wat ik zo raar vind.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php switch ($x) { case 1: case 3: case 5: echo '$x is oneven'; break; case 2: case 4: case 6: echo '$x is even'; break; default: echo 'Ik weet niet wat $x is'; break; } ?> |
Precies, zo vind ik het veel mooierquote:Op dinsdag 3 juni 2014 21:34 schreef Light het volgende:
[..]
Die tab zorgt ervoor dat je alle case-statements op 1 lijn hebt en alle code die uitgevoerd wordt voor een case een niveau dieper. En je kunt ook meerdere case-statements hebben zonder break ertussen, dat is dan een reden voor een groter blok op de indent van de case:
[ code verwijderd ]
Dank je.quote:Op dinsdag 3 juni 2014 20:55 schreef robin007bond het volgende:
[..]
Hmm, wellicht is het handig om te beginnen met het leren van normaliseren van databases.
http://www.phphulp.nl/php/tutorial/overig/normaliseren/150/
Dus je zult het vast in één record willen hebben in de applicatie zelf, maar dat zou ik niet in de database doen. Eerst zou ik nadenken over je data, dan wat je allemaal wil doen daarmee.
Wellicht is het een leukere oefening om zelf eens wat met PHP te stoeien alvorens je met een PHP-framework gaat werken. Frameworks maken het ontwikkelen eenvoudiger, maar het kan zijn dat je de basis dan een beetje mist.
Op http://codecademy.com/ hebben ze leuke PHP-tutorials. Volgens mij gaan ze daar ook in op OOP.
Veel succes!
Je kunt denk ik het beste beginnen bij waar jij wilt beginnen. Werk voor jezelf in iteraties. Welke functionaliteit wil jij als eerste af hebben, welke daarna, etc. Het überhaupt hebben van een database met banden en daarin kunnen kijken lijkt me dus de eerste iteratie. Daarna kun je daarop steeds verder bouwen.
Dat weet ik, maar de server waar dit op komt te draaien is mijn eigen productiewebserver, dus daar draait mysql toch al op. De eerste opzet was volledig offline.quote:Op dinsdag 3 juni 2014 21:26 schreef slacker_nl het volgende:
sqlite is wel makkelijk hoor, daar heb je geen mysql voor nodig..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php class load { public static function core(){ // logic require 'setup.php'; $setup = new setup(); require 'medoo.php'; $database = new medoo(); require 'route.php'; //$route = new route(); // markup require 'markup/base.php'; } } load::core(); class get { public static function object($name) { return $$name; } } $test = get::object('setup'); var_dump($test); ?> |
Omdat $setup een lokale variabele is?quote:Op woensdag 4 juni 2014 14:21 schreef n8n het volgende:
Waarom werkt zoiets niet?
initialise.php (als enige required in index.php)
[ code verwijderd ]
de var_dump onderin resulteert in: Notice: Undefined variable: setup in initialise.php
wanneer ik $setup dump in base.php (template default) krijg ik wel een object terug: "object(setup)[1]".
base.phpquote:Op woensdag 4 juni 2014 14:26 schreef Aether het volgende:
[..]
Omdat $setup een lokale variabele is?
Kun je base.php hier plaatsen?
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | <!doctype html> <html> <head> <title><?php present::meta('title'); ?></title> <link rel="stylesheet" type="text/css" href="presentation/style.css"> </head> <body> <?php load::markup('component', 'navigation'); ?> <section id="illustration" class="container gallery"> <header class="page"> <h1>Illustration</h1> </header> <ul> <?php $id = 0; for ($i = 1; $i <= 11; $i++) { if ($id < 11 ) { $id++; } else { $id = 1; } echo ' <li class="project"> <header>Titel omdat het kan ja dus dat jongen</header> <a href=""> <img src="content/illustration/afbeelding-' . $id . '.jpg"> </a> '; } ?> </ul> </section> <section id="project" class="container project"> <header class="page"> <h1>Titel van een project</h1> </header> <article> <p>Hagley is a town in Northern Tasmania, Australia, 22 kilometres (14 mi) southwest of Launceston on the Meander Valley Highway. The area was used by the Port Dalrymple Aboriginal Tasmanians until they were driven from their lands by European Settlement.</p> <footer> Made for NRC </footer> </article> <ul> <?php $id = 0; for ($i = 1; $i <= 11; $i++) { if ($id < 11 ) { $id++; } else { $id = 1; } echo ' <li class="media"> <img src="content/illustration/afbeelding-' . $id . '.jpg"> <footer>caption</footer> '; } ?> </ul> </section> <section id="contact" class="container contact"> <header class="page"> <h1>Get in touch</h1> </header> <article> <p> <img src="content/picture/image.jpg" width="480" height="480"> </p> <p>06 1234 5678</p> <p>hi@example.com</p> <p>LinkedIn</p> <p>Facebook</p> </article> <form> <p> <label for="name">Your name</label> <input id="name" type="text" placeholder="Jane Doe"> </p> <p> <label for="email">Email address</label> <input id="email" type="email" placeholder="you@example.com"> </p> <p> <label for="message">Message</label> <textarea id="message"></textarea> </p> <button type="submit">Send</button> </form> </section> </body> </html> |
1 2 3 | <?php require 'core/initialise.php'; ?> |
$setup wordt niet in deze code gedumpt -- gebeurt dat op een andere plek?quote:Op woensdag 4 juni 2014 14:32 schreef n8n het volgende:
[..]
base.php
[ code verwijderd ]
Staat nog niet zo veel in behalve een wat hardcoded data die ik nog moet automatiseren.
en index.php
[ code verwijderd ]
quote:Op woensdag 4 juni 2014 14:43 schreef Aether het volgende:
[..]
$setup wordt niet in deze code gedumpt -- gebeurt dat op een andere plek?
1 2 3 | <?php $test = get::object('setup'); var_dump($test); ?> |
Sorrie, maar ik snap het nut niet van wat je hier probeert te doen.quote:Op woensdag 4 juni 2014 14:21 schreef n8n het volgende:
Waarom werkt zoiets niet?
initialise.php (als enige required in index.php)
[ code verwijderd ]
de var_dump onderin resulteert in: Notice: Undefined variable: setup in initialise.php
wanneer ik $setup dump in base.php (template default) krijg ik wel een object terug: "object(setup)[1]".
Was het er zelf ook al niet mee eens, wilde een manier vinden om objecten te kunnen extracten, dacht dat het zo kon. Dat het in elkaar stort bij wijziging is niet zo erg want het is ff snel hacken, ben al blij als iets werkt en ga het later nog een keer aanpassen allemaal zodra ik er wat meer van snap.quote:Op woensdag 4 juni 2014 15:57 schreef totalvamp het volgende:
[..]
Sorrie, maar ik snap het nut niet van wat je hier probeert te doen.
Als je files als standaard wilt includen doe je dit meestal in je bootstrap.
Daarnaast blijven je variabelen alleen beschikbaar in core().
Het is ook niet handig om een class method dependencies te geven aan bestanden/classes, als er ergens iets veranderd stort je applicatie in.
Ja moet daar nog kaas van zien te maken.quote:Op woensdag 4 juni 2014 16:02 schreef Tijn het volgende:
n8n, heb je al eens naar autoloading gekeken? Dan hoef je niet steeds de files te includen voordat je een class aanroept.
Wat bedoel je hiermee? Wat wil je precies dat er gebeurt?quote:Op woensdag 4 juni 2014 16:39 schreef n8n het volgende:
[..]
Was het er zelf ook al niet mee eens, wilde een manier vinden om objecten te kunnen extracten
dat als ik get::global('name') doe hij een object returned die $name heet. Leek me een manier om objecten door te sluizen maar ik ben er weer vanaf gestapt.quote:Op woensdag 4 juni 2014 17:18 schreef Tijn het volgende:
[..]
Wat bedoel je hiermee? Wat wil je precies dat er gebeurt?
Als je Composer installeert is autoloading echt een eitje.quote:Op woensdag 4 juni 2014 16:39 schreef n8n het volgende:
[..]
Was het er zelf ook al niet mee eens, wilde een manier vinden om objecten te kunnen extracten, dacht dat het zo kon. Dat het in elkaar stort bij wijziging is niet zo erg want het is ff snel hacken, ben al blij als iets werkt en ga het later nog een keer aanpassen allemaal zodra ik er wat meer van snap.
[..]
Ja moet daar nog kaas van zien te maken.
Heb het nu opgelost door m'n base.php content in index.php te zetten, alle variables zijn nu beschikbaar. Volgens mij kwam het omdat ik een require (navigation) deed binnen een file (base.php) die net daarvoor de andere files pas gedaan had. Kan nu weer ff verder, ga nu routes aanmaken en daarna de templates schrijven die op basis van de route ingevuld worden en dan ben ik er bijna aan de frontend. Daarna een 'CMS' maken zodat m'n vriendin zelfstandig de content kan uploaden.quote:Op woensdag 4 juni 2014 17:35 schreef Tijn het volgende:
Wat voor dingen zitten er in je setup object? Alleen properties of ook methods?
Sowieso begrijp ik je idee van "doorsluizen" niet eigenlijkIs het niet een idee om een static object te maken en met autoloaders te zorgen dat andere objecten erbij kunnen?
Dat heb ikquote:Op woensdag 4 juni 2014 17:58 schreef robin007bond het volgende:
[..]
Als je Composer installeert is autoloading echt een eitje.
Waarom niet gewoon constanten? Die zijn automatisch overal beschikbaar zonder dat je ze (per ongeluk) kunt veranderen.quote:Op woensdag 4 juni 2014 18:21 schreef n8n het volgende:
[..]
Edit: werkt toch niet, dan maar aan de autoloader ff proberen, de setup heeft alleen array's met config (beetje zoals WP het heeft)
1 2 3 4 5 6 7 8 | <?php function __autoload($class_name) { include $class_name . '.php'; } $obj = new MyClass1(); $obj2 = new MyClass2(); ?> |
Ik heb nu dat de class $database niet beschikbaar is in navigation.php (die included is in index.php). Snap er gewoon niks vanquote:Op woensdag 4 juni 2014 18:31 schreef Tijn het volgende:
[..]
Waarom niet gewoon constanten? Die zijn automatisch overal beschikbaar zonder dat je ze (per ongeluk) kunt veranderen.
Nee, dat zet je in een file die je inlaadt voordat je deze functionaliteit wilt gebruiken. Daarna "kent" je hele app de autoloader en kan-ie automatisch files includen op het moment dat je een class aanroept.quote:Op woensdag 4 juni 2014 18:31 schreef n8n het volgende:
[ code verwijderd ]
Hier staat dan (van php.net) een functie die een autoload doet, met dit moet je dan op elke pagina "__autoload($class_a);" zetten?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |