Goedemorgen,
Ik heb volgende code geschreven. Het werkt, zoals ik wil dat het werkt.
Maar is dit de correcte manier ?
* Niet relevante code is weggelaten
manier hoe ik het gebruik
template
Ik dacht dat in dergelijke situaties je kon gebruikmaken van extend, maar dat werkt niet, of deed ik het fout?
Ik heb volgende code geschreven. Het werkt, zoals ik wil dat het werkt.
Maar is dit de correcte manier ?
* Niet relevante code is weggelaten
PHP:
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
| <?php class Loader{ public $vars = array(); public $pointer = array(); public $p; //objects ############### constructor = bootstrapper public function __construct(){ $this->new_pointer('bootstrapper','template'); $this->p['bootstrapper']->load(); } ############### CREATE NEW POINTER public function new_pointer($pointer,$controller) { $this->p[$pointer] = new Pointer($controller,$this); } public function get($key){ if(isset($this->vars[$key])) return $this->vars[$key]; else return null; } } class Pointer{ private $loader; private $file; private $folder; public function __construct($controller,&$loader){ // reference to parrent object $this->loader = &$loader; $this->set_folder($controller); $this->set_file('html.php'); } public function load($file=null){ $pointers = &$this->loader->p; foreach($pointers as $name=>&$pointer) { $$name = &$pointer; } if($file==null) $file = $this->file; $folder = $this->folder; $lang = $this->get('lang'); $path = "$folder/$file"; include($path); } public function get($key){ return $this->loader->get($key); } } |
manier hoe ik het gebruik
template
PHP:
1
2
3
4
5
6
7
8
| in een object van Loader wordt het volgende gedaan: $this->new_pointer('main','home'); vervolgens in een object van Pointer het volgende: //bestand 'menu.php' oproepen in map template $this->load('menu.php'); //html.php oproepen in map home $main->load(); |
Ik dacht dat in dergelijke situaties je kon gebruikmaken van extend, maar dat werkt niet, of deed ik het fout?