abonnement Unibet Coolblue Bitvavo
pi_112027075
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? , tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiėren.

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
<?php
Class Product {

Global 
$db;

   function 
__construct() {
      
setProductInfo($_GET['id']);
   }

/**
 * Idee hiervan is dat hij de product info opslaat ,
 * het ID en als er geen ID is van het product dat hij zichzelf vernietigd.
 */
function setProductInfo($id){
  
$this->product_info $db->fetchAssoc($db->query("Select * from products_ where id = ' ".$id." ' "));
 if(!empty(
$this->product_info['id'])){
  return 
true;
}else{
 
destroy();
}

function 
destroy(){
 unset(
$this);
 return 
true;
}

}
?>

Ik zat ook al met namespaces te kijken alleen dat is alleen als je php 5.3.0 en daarboven hebt.
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
namespace DatabaseEntitiesKeuken
;
class 
Product
{
    
//inhoud
    
function getName()
    {
        return 
"Test1";
    }
};

namespace DatabaseEntitiesStofruimte;
class 
Product
{
     
// inhoud
     
function getName()
     {
        return 
"Test2";
     }
};


use 
DatabaseEntitiesKeukenProduct;
$product = new Product();
echo 
$product->getName();
use 
DatabaseEntitiesStofruimteProduct;
$product_stof = new Product();
echo 
$product_stof->getName();
?>
Idee is dat hij dan maar een paar classes inlaad ipv het hele bestand. en dubbelop namen kan laden.
Resultaat hoort "Test1Test2" uit te komen ongv. :P

[ Bericht 17% gewijzigd door cablegunmaster op 25-05-2012 19:39:18 ]
Redacted
pi_112030131
quote:
0s.gif Op vrijdag 25 mei 2012 17:04 schreef Pizzalucht het volgende:

[..]

Dat ligt meer aan ervaring. Met Drupal kan je eigenlijk alles aanpassen, als je weet hoe.
De documentatie van Drupal is over het algemeen ook erg goed.

Maar als je niet verder komt dan een module installeren, aanzetten en er dan achterkomen dat het niet precies is wat je zoekt, en dan stopt met proberen, dan is Drupal inderdaad niks voor je.

Ik werk ook bij een bedrijf waar we bijna alleen maar Drupal doen, en het is veel meer dan alleen "een kleine hack/aanpassing".
Ja ik heb ook meerdere drupal sites gemaakt, en inderdaad je kunt het zo aanpassen als je wilt, net als elk opensource pakket, maar het is absoluut niet ideaal. De code is niet OOP en erg rommelig en inefficient (maar daarmee wel weer flexibel).
Ik moest laatst een drupal site uitbreiden en in m'n template folder zat een waslijst aan view templates die allemaal weer losse stukjes content bevatten die werd aangesuurd door views. Oftewel een deel van je logica zit in de database (modules), een deel van je logica zit in templates (functies, config), een deel van je content zit in de database (nodes) en een deel van je content zit in templates (statische tekst). Verder zit er soms ook nog php code in je database om net iets verder te kunnen gaan dan er wordt aangeboden. Dan heb je nog de logica die nodig is om blocks/content op de juiste plaats te krijgen, dit is in het begin met taxonomy/context te doen, maar ook dit wordt een chaos als er meer pagina's, views, permissies, etc bijkomen...

Ik zie het zo; een framework als Zend of Yii is als een verzameling bouwmaterialen (bakstenen, balken, gereedschap, etc) waarmee je zelf alles kan maken wat je wilt. Drupal is als een complete caravan waar je zo een prefab bed- of keukenblokje kan bijprikken. Maar wil je een extra verdieping of serre, dan heb je een probleem (het 'kan' wel, maar het is erg lelijk).

[ Bericht 0% gewijzigd door Schepseltje op 25-05-2012 20:19:15 ]
pi_112030923
quote:
0s.gif Op vrijdag 25 mei 2012 18:55 schreef cablegunmaster het volgende:
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? ,
Nee, waarom zou je dat willen?
quote:
tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiėren.
Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
pi_112033032
quote:
0s.gif Op vrijdag 25 mei 2012 20:26 schreef Schepseltje het volgende:

Nee, waarom zou je dat willen?

Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
Nieuwschierigheid :). Ik probeer nu iets op te zetten in een soort van MVC model.
Ik weet hoe het MVC model werkt, maar toch blijf ik verkennen wat kan en niet kan :)
Volgens mij konden Exceptions namelijk ook al niet in PhP :P

[ Bericht 5% gewijzigd door cablegunmaster op 25-05-2012 21:34:27 ]
Redacted
  vrijdag 25 mei 2012 @ 21:29:07 #105
25889 Sitethief
Fulltime Flapdrol
pi_112033544
http://projecteuler.net/

Ben inmiddels al met probleem 3 bezig. best wel interessant om eens wat wiskunde met php te doen :).
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 25 mei 2012 @ 21:58:58 #106
137776 boem-dikkie
Jedi Mind Baby!
pi_112034751
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112034881
quote:
13s.gif Op vrijdag 25 mei 2012 21:58 schreef boem-dikkie het volgende:
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
Redacted
  vrijdag 25 mei 2012 @ 22:09:12 #108
137776 boem-dikkie
Jedi Mind Baby!
pi_112035134
quote:
0s.gif Op vrijdag 25 mei 2012 22:02 schreef cablegunmaster het volgende:

[..]

Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
Ik gooi de userinput met de strtotime functie in de database.

Dus de user zegt in een input veld: 25-05-2012 en met $datum = strtotime($datum); converteer ik het. Daarna het database riedeltje.

Servertijd staat gewoon goed volgens mij, als ik time() echo geeft hij gewoon de datum van vandaag weer.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112036305
Dan weet ik het even niet :P
Redacted
pi_112038396
http://php.net/manual/en/function.setlocale.php

let erop dat je hem anders instelt op windows als bij linux
pi_112044879
Al heb ik nog wel een beetje moeite om in OO-php te gaan denken. Komt wel goed ^O^
Redacted
  zaterdag 26 mei 2012 @ 10:23:19 #112
137776 boem-dikkie
Jedi Mind Baby!
pi_112045751
Wat?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  zaterdag 26 mei 2012 @ 10:24:45 #113
137776 boem-dikkie
Jedi Mind Baby!
pi_112045784
Je checkt $id nu helemaal niet he?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112045862
quote:
14s.gif Op zaterdag 26 mei 2012 10:24 schreef boem-dikkie het volgende:
Je checkt $id nu helemaal niet he?
Weet ik , tis een example :P

Ik zat hiernaar te kijken maar vond het nog een klein beetje onhandig.
http://www.websitemaken.be/index.php?page=show_item&id=316
En richting : http://www.phptutorial.be/global-variables.html om te kijken hoe ik het beste global variabelen kon gebruiken , lees heel veel over dat het onveilig is.

[ Bericht 11% gewijzigd door cablegunmaster op 26-05-2012 10:35:32 ]
Redacted
  zaterdag 26 mei 2012 @ 10:56:25 #115
137776 boem-dikkie
Jedi Mind Baby!
pi_112046317
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112046502
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creėren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)

Daar zat ik eerder naar te kijken. :P

[ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 11:19:24 ]
Redacted
  zaterdag 26 mei 2012 @ 11:20:07 #117
137776 boem-dikkie
Jedi Mind Baby!
pi_112046699
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Probeer alleen maar te helpen hoor.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112046738
quote:
7s.gif Op zaterdag 26 mei 2012 11:20 schreef boem-dikkie het volgende:

[..]

Probeer alleen maar te helpen hoor.
Ik dank je voor je hulp, als je vragen hebt stel ze.
Redacted
pi_112047086
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

...of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?

Daar zat ik eerder naar te kijken. :P
Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
pi_112047106
quote:
14s.gif Op zaterdag 26 mei 2012 11:42 schreef Devv het volgende:

[..]

Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
Duidelijk dat is ook het geval! ^O^
Redacted
pi_112047324
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P
Wat is er anders aan MVC in Java dan in PHP?
quote:
Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.
quote:
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creėren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)
Smarty (of een ander templating systeem) hoort in de view.
pi_112047597
quote:
0s.gif Op zaterdag 26 mei 2012 11:55 schreef Light het volgende:

Wat is er anders aan MVC in Java dan in PHP?

[..]

Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.

[..]

Smarty (of een ander templating systeem) hoort in de view.
1. geen idee , gewoon nog niet mee gewerkt.
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
Redacted
  zaterdag 26 mei 2012 @ 12:12:39 #124
111382 Ofyles2
Bestemming: onbekend
pi_112047651
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt?
Ik heb mezelf schromelijk overschat.

Ik begrijp MVC niet goed genoeg, ik moet met een geheel nieuw plan komen.
pi_112047775
quote:
0s.gif Op zaterdag 26 mei 2012 12:08 schreef cablegunmaster het volgende:

[..]

1. geen idee , gewoon nog niet mee gewerkt.
De structuren zijn gewoon hetzelfde :)
quote:
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
1
2
3
4
5
6
7
8
9
<?php
private $db;
public function 
setDb(MyDatabaseClass $db) {
    
$this->db $db;
}
public function 
getDb() {
    return 
$this->db;
}
?>
pi_112047797
quote:
0s.gif Op zaterdag 26 mei 2012 11:55 schreef Light het volgende:

[..]

Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders.
Dat vind ik dus het grote nadeel van PHP, loose typing.
pi_112047862
quote:
0s.gif Op zaterdag 26 mei 2012 12:20 schreef Devv het volgende:

[..]

Dat vind ik dus het grote nadeel van PHP, loose typing.
Da's een nadeel, ben ik met je eens. Maar 't is een eigenschap van de taal waar je dus gewoon mee moet werken (of je zoekt een andere taal op om mee te werken).
pi_112047963
quote:
0s.gif Op zaterdag 26 mei 2012 12:24 schreef Light het volgende:

[..]

Da's een nadeel, ben ik met je eens. Maar 't is een eigenschap van de taal waar je dus gewoon mee moet werken (of je zoekt een andere taal op om mee te werken).
Java is daar weer makkelijker in , php is daar loosse in. :P , misschien ook de reden dat ik soms
1
2
3
4
5
<?php
$array 
= Array();
$string = (string) $waarde;
$integer = (int) $integer;
?>
Tegen kom. om toch aan te geven wat bepaalde variabelen zijn.
Light veel van wat die spreker vertelt is eigenlijk best logisch. :P

[ Bericht 15% gewijzigd door cablegunmaster op 26-05-2012 12:45:57 ]
Redacted
pi_112050120
Iemand eerder meegemaakt dat fopen aangeroepen in een class destructor vervelend doet?
"Social order at the expense of liberty is hardly a bargain."
pi_112050799
quote:
9s.gif Op zaterdag 26 mei 2012 14:11 schreef Quir het volgende:
Iemand eerder meegemaakt dat fopen aangeroepen in een class destructor vervelend doet?
Leg eens uit wat was je idee?
Redacted
pi_112051268
quote:
Ik vroeg het inderdaad zonder toelichting omdat ik dacht dat het een bug zou zijn. Had die pagina ook al gevonden, maar die is uit 2004/2007, dus ik hoopte dat het inmiddels wel gefixt zou zijn. Nog steeds gissen of dat de dwarsligger is of niet.

quote:
0s.gif Op zaterdag 26 mei 2012 14:40 schreef cablegunmaster het volgende:

[..]

Leg eens uit wat was je idee?
Ik heb een cache functie die een kopie uit de cache doorsluist wanneer er een (niet-verlopen) beschikbaar is, zoniet, roept-ie ob_start() aan en set hij een variabele op True.
In de destructor heb ik dan

1
2
3
4
5
6
<?php
if ($this->cacheUsage) {
    
$this->writeToFile($this->cachePath $this->cacheName '.html''w'ob_get_contents());
    
ob_end_flush();
}
?>

die de volgende functie gebruikt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
public function writeToFile($path$mode$data) {
    
$success 'Error';
            
    if (
$file fopen($path$mode)) {
        if (
fwrite($file$data)) {
            
fclose($file);
            
$success 'Success!';
            goto 
End;
        }
                
        
fclose($file);
        
$success 'Failed to write';
        goto 
End;
    }
            
    
$success 'Failed to open file';
            
    
End:
    return 
$success;
}
?>

Wanneer ik het zo draai geeft hij de volgende melding

1Warning: fopen(Cache/pagina.html) [function.fopen]: failed to open stream: No such file or directory

Maar wanneer ik cachePath en cacheName public maak en de aanroep copy paste naar onder m'n template doet 'ie het zonder te morren.
"Social order at the expense of liberty is hardly a bargain."
pi_112051364
Ik wil het ook eens testen om te kijken of ik een test case kan maken met een simpele constructor en destructor :)
Redacted
pi_112051471
Ik moet nu weg, maar zal er straks een in elkaar knutselen.
"Social order at the expense of liberty is hardly a bargain."
pi_112051603
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
andere optie: register_shutdown_function("Object");
Nog een idee fopen in de constructor aanroepen en vervolgens fclose(); gebruiken in de destructor.
of werkt fwrite niet in de destructor?

Bron:
http://stackoverflow.com/(...)er-shutdown-function

[ Bericht 9% gewijzigd door cablegunmaster op 26-05-2012 15:26:44 ]
Redacted
pi_112053153
quote:
0s.gif Op zaterdag 26 mei 2012 15:11 schreef cablegunmaster het volgende:
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
andere optie: register_shutdown_function("Object");
Nog een idee fopen in de constructor aanroepen en vervolgens fclose(); gebruiken in de destructor.
of werkt fwrite niet in de destructor?

Bron:
http://stackoverflow.com/(...)er-shutdown-function
Waarom zou je dit willen? Had even wat posts doorgelezen, maar snap niet je opzet.

Als er bijv al een db class is aangeroepen kun je gewoon een nieuwe aanroepen. In php5 is het zo dat je dan al hem via referentie aanroept. Dus hetzelfde object. In een destructor __sleep() in dit geval, zet je bijv je afsluit acties neer. Globals zijn ook nergens voor nodig :) Je kan altijd nog een controller class maken waar je alles in beschikbaar maakt.

Voorbeeldje (oude code):
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
<?php

class Game {
    
    
// Holds player name
    
public $players = array();
    
    
// Game id database
    
public $game_id;
    
    
// Minimum start bid
    
public $minimum_bid 3;
    
    private 
$pdo;   
    
    private 
$rules;
    
    
// Holds turns
    
public $turns = array();
    
    public 
$bids = array();
    
    
// Sets game Id
    
public function __construct(Array $playersRules $rules) {
        
$this->players $players;  
        
$this->pdo = new Database();
        
$this->rules $rules;
    }                                
    
    
// Removes a player when he loses connection or leaves the game
    
public function removePlayer($player = array()) {
        if(
array_key_exists($player['name'], $this->players)) {
            unset(
$this->players[$player['name']]);
        }
    }
    
    public function 
nextTurn() {
        
$stop false;
        foreach(
$this->players as $player) {
            if(
$player == $this->player_turn)
                
$stop true;
            
            if(
$stop) {
                
$this->playerTurn $player;
                break;
            }
        }
    }
    
    public function 
setBid($name$bid) {
        
$this->bids[$name] = $bid;
    }
        
    public function 
__sleep() {
        
$this->pdo null;
        return array(
'players','game_id''bids''minimum_bid''turns''rules');
    }
}

?>


[ Bericht 77% gewijzigd door #ANONIEM op 26-05-2012 16:29:58 ]
pi_112053481
MVC is taal onafhankelijk :')
pi_112054127
quote:
0s.gif Op zaterdag 26 mei 2012 16:24 schreef Scorpie het volgende:
MVC is taal onafhankelijk :')
Ik ben bezig met een uitgebreide site om te bouwen daarom mijn terughoudenheid om alles goed te maken :). (beetje onderzoek wat wel en niet kan ) :P

[ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 18:07:46 ]
Redacted
pi_112055522
quote:
0s.gif Op zaterdag 26 mei 2012 15:11 schreef cablegunmaster het volgende:
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen.
unset() zorgt er niet direct voor dat de destructor wordt aangeroepen. Dat gebeurt alleen als de garbage collector het object opruimt. En dat gebeurt alleen als geen referenties meer zijn naar het object, maar dan hoeft het nog niet meteen te gebeuren.
pi_112149414
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
<?php
    
class Cache {
        public 
$cacheUsage;

        function 
__construct() {
            
$this->cacheUsage False;
        }

        public function 
callCache($expiration) {
            if (
file_exists('Page.html') && (time()-filemtime('Page.html')) < $expiration) {
                include 
'Page.html';
                
$this->cacheUsage False;
                exit();
            } else {
                
ob_start();
                
$this->cacheUsage True;
            }
        }

        protected function 
writeToFile($path$mode$data) {
            
$file fopen($path$mode);
            
fwrite($file$data);
            
fclose($file);
        }

        function 
__destruct() {
            if (
$this->cacheUsage) {
                
$this->writeToFile('Page.html''w'ob_get_contents());
                
ob_end_flush();
            }
        }
    }

    
$CacheClass = new Cache();
    
$CacheClass->CallCache(30);

    echo 
'Hallo!';
?>

Even een vluchtige herproductie. Was het helaas alweer vergeten, heb namelijk de destructor er uit gekieperd omdat ik op sommige plekken in m'n script exit() aanroep waar ik niet wil dat de destructor meegepakt wordt.

En, een snelle test met bovenstand wijst uit dat met unset(object) de destructor wel degelijk aangeroepen wordt.
"Social order at the expense of liberty is hardly a bargain."
pi_112167365
Ik heb nog een vraag:
Als ik een Controller klasse maak.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class websiteController
{
    private 
$model;
    private 
$view;

    public function 
__construct($model,$view)
    {
        
$this->model $model;
        
$this->view $view;
    }
    public function 
listenerA($test){
        
$this->model->doeIets($test);
    }
}
?>

Hoe zorg ik ervoor dat hij luistert naar iets? Of moet ik in elke PHP de betreffende functies van de controller neerzetten?

1
2
3
4
<?php
//bevat $controller = websitecontroller object
$controller->listenerA($_GET['test']);
?>


[ Bericht 0% gewijzigd door cablegunmaster op 29-05-2012 14:45:35 ]
Redacted
pi_112167533
Definieer 'luisteren'.
pi_112168028
quote:
0s.gif Op dinsdag 29 mei 2012 14:30 schreef Scorpie het volgende:
Definieer 'luisteren'.
Ik zit nu na te denken hoe ik de $_POST , $_GET afhandeling moet uitvoeren.
Zal ik dan bij de controller klasse een lijst moeten maken van if $_POST en if $_GET?
Die vervolgens het Object Controller aanroept?
Redacted
pi_112168186
Je wil dus $_GET en $_POST acties koppelen aan je controller? Kijk eens naar een RequestDispatcher routine.
pi_112168347
quote:
0s.gif Op dinsdag 29 mei 2012 14:48 schreef Scorpie het volgende:
Je wil dus $_GET en $_POST acties koppelen aan je controller? Kijk eens naar een RequestDispatcher routine.
Ik krijg nu heel veel ingewikkelde code in google als ik dit zoek.
Wat ik eigenlijk wil is dat hij $_GET koppelt aan de controller.
of een $_POST verzoek.

quote:
Request Dispatcher is used to forward a request to another page.
bron: http://www.hscripts.com/tutorials/jsp/examples/example2.php
het hoeft niet naar een andere pagina toe.


quote:
Dit vind ik als ik op de request dispatcher zoek, beetje ingewikkeld. :P
Ondanks de hoeveelheid documentatie snap ik niet wat ze met de klasse willen doen.

Dit wil ik ongeveer bereiken dat de lijst met if($_POST) een stuk kleiner wordt. en afgehandeld wordt door de controller.
1
2
3
4
5
6
7
8
<?php
//kort zonder sanitize, voorbeeld.  x20
if(isset($_POST['waarde']))
{
      
$waarde $_POST['waarde'];
      
$controller->listenA($waarde);
}
?>
Of er een andere manier is om te controleren of een $_POST waarde of $_GET waarde is gezet en deze met de controller te kunnen afhandelen. :)

[ Bericht 15% gewijzigd door cablegunmaster op 29-05-2012 15:06:03 ]
Redacted
pi_112168961
Een Request Dispatcher forward niet per se naar een pagina. Kan ook naar een Controller Actie.
pi_112169936
quote:
Ik ga dit eens proberen uit te vogelen :).

Mijn eerste voorbeeld is gelukt met een simpele titel functie O+ .
Nu de rest nog :D . Maar ik heb hoop en denk dat het goed komt :s)

Pur class klinkt leuk maar hij gaat in de veronderstelling dat de Constructor niet bestaat / niet aangeroepen is. _O- Dus weer de prullenbak in / herschrijven :).

[ Bericht 27% gewijzigd door cablegunmaster op 29-05-2012 17:18:06 ]
Redacted
pi_112187275
quote:
Globals en singelton heb ik altijd al erg onelegant gevonden. :P
..///
pi_112192147
Waarom een controller class schrijven als er zoveel frameworks zijn die al een werkende, elegante en geteste implementatie hebben?
pi_112195714
quote:
0s.gif Op dinsdag 29 mei 2012 22:10 schreef Schepseltje het volgende:
Waarom een controller class schrijven als er zoveel frameworks zijn die al een werkende, elegante en geteste implementatie hebben?
Zelf iets te maken :) ?
Redacted
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')