Misschien zeg ik iets stoms hoor.quote:
Ik volg je mischien niet helemaal, maar wat ik bedoel; een gebruiker doet een zoekopdracht via een tekstveld, hier vult hij appel in.quote:Op woensdag 20 augustus 2014 23:25 schreef robin007bond het volgende:
[..]
Misschien zeg ik iets stoms hoor.
Maar kan je niet een aparte tabel maken met synoniemen en met allemaal foreign keys van dingen die synoniem van elkaar zijn binnen een bepaalde context?
Dat je dus een row hebt met appel, banaan en peer (als dat synoniemen zouden zijn natuurlijk ) en dan met een join legt naar de synoniemen zodra de zoekopdracht wordt gedaan?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <br /> <b>Fatal error</b>: Uncaught exception 'MissingException' with message 'Unable to load 3dlbiyswos7e8zi832k0.' in /<public_html>/control/autoload.php:17 Stack trace: #0 [internal function]: __autoload('3dlbiyswos7e8zi...') #1 /<public_html>/control/edit.php(191): call_user_func(Array) #2 [internal function]: ctrl_Edit->Add(Array) #3 /<public_html>/index.php(73): call_user_func(Array, Array) #4 /<public_html>/index.php(79): Main->Run() #5 {main} Next exception 'MissingException' with message 'Unable to load 3dlbiyswos7e8zi832k0.' in /<public_html>/control/autoload.php:17 Stack trace: #0 /<public_html>/control/edit.php(0): __autoload('3dlbiyswos7e8zi...') #1 [internal function]: ctrl_Edit->Add(Array) #2 /<public_html>/index.php(73): call_user_func(Array, Array) #3 /<public_ht in <b>/<public_html>/control/autoload.php</b> on line <b>17</b><br /> |
1 2 3 4 5 6 7 | <?php foreach ($childclasses as $classbase) { $classname = 'tpl_' . $classbase; $name = call_user_func(array($classname, 'GetName')); <andere dingen> } ?> |
omdat de functie call_user_func eerst de callback mee moet krijgen en als tweede argument de parameter. Nu doe je het andersomquote:Op zondag 24 augustus 2014 14:22 schreef Igen het volgende:
O ja, het gaat dus fout bij het volgende stukje code:
[ code verwijderd ]
Bij die laatste regel regel met "$name = ..." ontstaat dus een aanroep naar __autoload met die schijnbaar totaal willekeurige letters en cijfers als class-naam.
Iemand enig idee waarom?
1 2 3 4 5 6 7 8 9 10 | <?php error_reporting(E_ALL); function increment(&$var) { $var++; } $a = 0; call_user_func('increment', $a); ?> |
Nee hoor, volgens mij wil hij als callback GetName van de betreffende childclass aanroepen. Op zich is het valide code, maar wellicht is GetName niet static.quote:Op zondag 24 augustus 2014 16:12 schreef remi1986 het volgende:
[..]
omdat de functie call_user_func eerst de callback mee moet krijgen en als tweede argument de parameter. Nu doe je het andersom
mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
[ code verwijderd ]
Heb ik inderdaad op dit moment niet als static gedefinieerd. Ga uitproberen of het daaraan ligt.quote:Op zondag 24 augustus 2014 16:24 schreef Monolith het volgende:
[..]
Nee hoor, volgens mij wil hij als callback GetName van de betreffende childclass aanroepen. Op zich is het valide code, maar wellicht is GetName niet static.
Geen probleem. Vraag me alleen wel af wat je probeert te bereiken, want erg logisch ziet het er niet uit.quote:
Heb voor m'n persoonlijke website een simpele CMS gemaakt, als programmeeroefeningetje. De data bestaat uit een boomstructuur van pagina's, subpagina's, koppen, alinea's, plaatjesgalerijen, losse plaatjes, embedded youtube-filmpjes enz. Het stukje code wat ik liet zien, maakt een menuutje waar je kan kiezen uit de geldige soorten inhoud die je op een bepaald punt kan invoegen (een plaatje of filmpje bijv. alleen in een galerij, etc.).quote:Op zondag 24 augustus 2014 17:44 schreef Monolith het volgende:
[..]
Geen probleem. Vraag me alleen wel af wat je probeert te bereiken, want erg logisch ziet het er niet uit.
1 2 3 4 5 6 7 8 9 10 11 | <?php $mod_parent = $this->db->LoadElement($parent_id); $childclasses = $mod_parent->FindPossibleChildClasses($this->options); foreach ($childclasses as $classbase) { $classname = 'tpl_' . $classbase; $name = call_user_func(array($classname, 'GetName')); $screenname = call_user_func(array($classname, 'TypeName')); $output .= '<option value="' . $name . '">' . $screenname . '</option>'; } ?> |
Maar al die classes hebben dus een statig GetName die een bepaalde naam teruggeeft of hoe moet ik het zien?quote:Op zondag 24 augustus 2014 17:52 schreef Igen het volgende:
[..]
Heb voor m'n persoonlijke website een simpele CMS gemaakt, als programmeeroefeningetje. De data bestaat uit een boomstructuur van pagina's, subpagina's, koppen, alinea's, plaatjesgalerijen, losse plaatjes, embedded youtube-filmpjes enz. Het stukje code wat ik liet zien, maakt een menuutje waar je kan kiezen uit de geldige soorten inhoud die je op een bepaald punt kan invoegen (een plaatje of filmpje bijv. alleen in een galerij, etc.).
[ code verwijderd ]
(Ik geloof dat het niet netjes is om HTML direct in de code te genereren, maar dat is weer een ander verhaal)
Ja ik snap hem ook niet echt hoevaak ik er ook naar kijk xDquote:Op zondag 24 augustus 2014 18:18 schreef remi1986 het volgende:
Wat een vage constructies je hier soms ook tegenkomt
Eerst uit de database een rijtje namen halen, en dan vervolgens aan de class vragen van "hee hoe heet jij?"
Ja.quote:Op zondag 24 augustus 2014 18:02 schreef Monolith het volgende:
[..]
Maar al die classes hebben dus een statig GetName die een bepaalde naam teruggeeft of hoe moet ik het zien?
Klopt. Ik wil niet dat de eindgebruiker rechtstreeks in de HTML-code kan zien hoe de klassen intern heten.quote:Op zondag 24 augustus 2014 18:18 schreef remi1986 het volgende:
Wat een vage constructies je hier soms ook tegenkomt
Eerst uit de database een rijtje namen halen, en dan vervolgens aan de class vragen van "hee hoe heet jij?"
Daar heeft de gebruiker niet zo veel aan hoor.quote:Op zondag 24 augustus 2014 18:26 schreef Igen het volgende:
[..]
Ja.
[..]
Klopt. Ik wil niet dat de eindgebruiker rechtstreeks in de HTML-code kan zien hoe de klassen intern heten.
Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:quote:Op zondag 24 augustus 2014 18:38 schreef Monolith het volgende:
[..]
Daar heeft de gebruiker niet zo veel aan hoor.
Dit soort bijzondere constructies zijn ook echt schering en inslag in PHP.
1 2 3 4 5 6 7 | <?php foreach ($childclasses as $classname) { $screenname = call_user_func(array($classname, 'TypeName')); $output .= '<option value="' . $classname . '">' . $screenname . '</option>'; } ?> |
De hele manier waarop je data in de database en de code zelf verwoven lijken te zijn.quote:Op zondag 24 augustus 2014 18:49 schreef Igen het volgende:
[..]
Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:
[ code verwijderd ]
Gebruikt nog steeds dezelfde constructies. Welke constructie vind je eigenlijk zo "bijzonder"?
Database? Alles wat ik hier heb gepost heeft niks met databases te maken. Ik ga toch zeker niet met een database verbinding maken om te kijken welke classes mijn broncode kent.quote:Op zondag 24 augustus 2014 19:00 schreef Monolith het volgende:
[..]
De hele manier waarop je data in de database en de code zelf verwoven lijken te zijn.
Sla dan dit soort informatie in zijn geheel op in de database.
Is er iets mis met inheritance?quote:Sowieso heb ik het idee dat hier weer een brij aan inheritance ipv composition wordt gebruikt.
het idee van classes is dat je er objecten van maakt. Een getname functie zou dan logischerwijs betekenen dat je de naam van het desbetreffende object krijgt, en niet de naam van de class.quote:Op zondag 24 augustus 2014 18:49 schreef Igen het volgende:
[..]
Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:
[ code verwijderd ]
Gebruikt nog steeds dezelfde constructies. Welke constructie vind je eigenlijk zo "bijzonder"?
De naam van de functie is misschien niet zo handig gekozen.quote:Op zondag 24 augustus 2014 19:50 schreef remi1986 het volgende:
[..]
het idee van classes is dat je er objecten van maakt. Een getname functie zou dan logischerwijs betekenen dat je de naam van het desbetreffende object krijgt, en niet de naam van de class.
Ik heb graag dat eigenschappen van een klasse in die klasse zelf staan en niet ergens in een database.quote:Waarom zet je die screenname niet in de database erbij dan? Scheelt je loopen door al die classes en hoef je ook niet in elke class die functie aan te maken.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |