Hey Tweaker,
Ik ben voor mezelf een cmsje aan het opzetten maar heb een probleem mijn classen ontwerp.
In de index maak ik een object aan cms in die construct maak ik een database afhandelingsobject aan. Deze kan ik in de onderliggende functies wel gebruiken maar niet in children classen.
dit werkt perfect, maar wanneer ik een andere classe extend van deze classe gaat het mis.
Hier kan ik dus getArray niet bereiken, en als ik getType($this->conn) doe krijg ik NULL.
Ik maak waarschijnlijk een denkfout, wie kan / wil me helpen?
Groetjes Martin
Ik ben voor mezelf een cmsje aan het opzetten maar heb een probleem mijn classen ontwerp.
In de index maak ik een object aan cms in die construct maak ik een database afhandelingsobject aan. Deze kan ik in de onderliggende functies wel gebruiken maar niet in children classen.
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
| class cms { public $conn; function __construct() { $this->conn = $this->staticInstance(ADONewConnection('mysql')); $this->conn->connect('DBHOST','UNAME','PWD','DBNAME'); $this->loadDefines(); } // A generic function to create and fetch static objects public function staticInstance($class) { // Declare a static variable to hold the object instance static $instance; // If the instance is not there, create one if(!isset($instance)) { $instance =& new $class; } return($instance); } function loadDefines(){ $this->conn->$debug = 1; $arrDefine = $this->conn->GetAssoc('SELECT * FROM cms_defines'); if (count($arrDefine) >=1) { foreach ($arrDefine as $define){ define($define['name'], $define['value']); } } } |
dit werkt perfect, maar wanneer ik een andere classe extend van deze classe gaat het mis.
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
| class module_content extends cms { public $smarty; function __construct() { /* Setup smarty template engine */ $this->smarty = new Smarty(); $this->smarty->template_dir = '/home/dytech/public_html/smarty_templates/templates/content'; $this->smarty->compile_dir = '/home/dytech/public_html/smarty_templates/templates_c'; $this->smarty->cache_dir = '/home/dytech/public_html/smarty_templates/cache'; $this->smarty->config_dir = '/home/dytech/public_html/smarty_templates/configs'; } /** * function showContent() * * Retrieve paragraph values and parse them into smarty to create the template * */ function showContent() { $paragraphs = $this->conn->GetArray("SELECT * FROM `cms_page_content` WHERE `page_id` = $intPageID"); foreach ($paragraphs as $paragraph) { $this->smarty->assign('pcid', $paragraph['page_content_id']); $this->smarty->assign('page_content_title', $paragraph['page_content_title']); if ($paragraph['page_content_img_id'] >= 1) { $image = $this->conn->GetRow("SELECT * FROM `cms_images` WHERE `img_id` = " . $paragraph['page_content_img_id']); $this->smarty->assign('img', $image['img_filename']); $this->smarty->assign('pos', $paragraph['page_content_img_pos']); } else { $smarty->assign('img', ''); } $this->smarty->assign('page_content_text', $paragraph['page_content_text']); $this->smarty->display('content_paragraph.tpl'); } } } |
Hier kan ik dus getArray niet bereiken, en als ik getType($this->conn) doe krijg ik NULL.
Ik maak waarschijnlijk een denkfout, wie kan / wil me helpen?
Groetjes Martin