Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z obiektami w php5
Balin
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.05.2003

Ostrzeżenie: (0%)
-----


Mam nastepujacy problem: otoz pisze sobie cos na ksztalt silnika strony, zdecydowalem sie na php5, mam klase kernel:

[php:1:7357c021bb]<?php
class Kernel
{

public $objDB = null;
public $objConfig = null;

function __construct()
{


$this->objDB = new DB;
$this->objConfig = new Config( $this );

$this->objDB->Connect( 'tutaj parametry polaczenia' );
}

}
?>[/php:1:7357c021bb]
Oczywiscie klasa jest bardziej rozbudowana, ale chce zilurtrowac tylko problem - jadro tworzy obiekt Config i obiekt DB - config jest pobierany z bazy danych, dlatego do obiektu Config przekazuje referencje jadra systemu, aby mogl wykonac sobie metody sterownika bazy danych. Klasa Config wyglada w uproszczeniu tak:
[php:1:7357c021bb]<?php
class Config
{
private $objKernel = null;
public $arrVars = array();

function __construct( $objKernel )
{
$this->objKernel = $objKernel;
$this->Load();
}

function Load()
{
$this->objKernel->objDB->Query( 'SELECT config_name, config_value FROM ' . CONFIG_TABLE );

while( $arrRow = $this->objKernel->objDB->FetchAssoc() )
{
$this->arrVars[$arrRow['config_name']] = $arrRow['config_value'];
}
}
}
?>[/php:1:7357c021bb]

Wszystko wyglada w porzadku, z tym, ze wywolanie metod bazy danych z wewnatrz obiektu Config nic nie daje, jesli wywoluje je luzem, tworzac jakis nowy plik php i umieszczajac w nim kod:
[php:1:7357c021bb]<?php
include 'kernel.php';

$objKernel = new Kernel;
$objKernel->objDB->Query('zapytanie');
$arrRow = $objKernel->objDB->FetchRow();

?>[/php:1:7357c021bb]
to wszystko jest ok, w $arrRow mam dane, ale niestety jesli proboje zrobic to samo wewnatrz jakiegos obiektu do ktorego przekazalem obiekt jadra, to nie otrzymuje zadnego wyniku.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ludvik
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie szukałem informacji o tym, ale sam robiłem system, który bazował na wielokrotnej agregacji i także nie działało. Myślę, że wina nie leży po stronie kodu, tylko po stronie języka. Jeżeli się mylę to skorygujcie mnie, bo sam bym chętnie się dowiedział jak to działa.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 04:17