Nieuw in OOP, klein vraagje
Ik ben sinds deze week beginnen met OOP in PHP.
Heb een tijdje geleden in Java moeten programmeren, maar ben het al zo goed als verleerd.
Nu heb ik een object Intranet, die meerdere object aanmaakt, waaronder: Database en Configuration.
Stel nou dat ik vanuit het object Configuration een methode uit het object Database wil aanroepen, hoe doe ik dat?
Ik kan maar nergens op het internet echt een antwoord vinden op die vraag.
Op het gebied van performance lijkt het me niet verstandig om in het object Configuration ook nog een object Database aan te maken, want het object Database maakt een mysql-connectie, en twee links per oproep lijkt me overbodig, toch?
Wie helpt mij uit de brand?
Bedankt,
Gerard
Code (php)
Zoiets.
Maar stel nou dat ik vele andere klassen wil laten verwijzen, moet ik dan werkelijk al die klassen als verwijzing in de parameters meegeven, of is er toevallig een andere oplossing?
Ik zoek een oplossing waarmee ik, als object van klasse Intranet zijnde, bij de eigenschappen van Intranet kan.
Kan ik soms het (hoofd-)object Intranet meegeven en dan naar zijn object verwijzen?
Onderstaand een stukje van mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
class Intranet {
public function Intranet() {
$Configuration = new Configuration();
$PageController = new PageController();
$Configuration->doTest();
}
}
class Configuration {
public function doTest() {
$this->PageController->writeTest();
}
}
class PageController {
public function writeTest() {
echo "TEST!";
}
}
?>
class Intranet {
public function Intranet() {
$Configuration = new Configuration();
$PageController = new PageController();
$Configuration->doTest();
}
}
class Configuration {
public function doTest() {
$this->PageController->writeTest();
}
}
class PageController {
public function writeTest() {
echo "TEST!";
}
}
?>
Snap je ongeveer wat ik probeer te doen?
Toevoeging op 20/02/2011 00:34:42:
Jeetje zeg, het heeft even mogen duren, maar ik ben er uit!
Ik zal mijn 'bijdrage' aan de community doen door mijn broncode te delen:
Code (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
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
<?
error_reporting(E_ALL);
ini_set("display_errors", 1);
class Configuration {
public $Boss;
public function __construct(Intranet $Boss) {
$this->Boss = $Boss;
}
public function doTest() {
$this->Boss->PageController->writeTest();
}
}
class PageController {
public function writeTest() {
echo "TEST!";
}
}
class Intranet {
private $Configuration;
public $PageController; // Zet deze naar private om te voorkomen dat andere klassen er gebruik van kunnen maken
public function Intranet() {
$this->Configuration = new Configuration($this);
$this->PageController = new PageController();
$this->Configuration->doTest();
}
}
$Intranet = new Intranet();
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
class Configuration {
public $Boss;
public function __construct(Intranet $Boss) {
$this->Boss = $Boss;
}
public function doTest() {
$this->Boss->PageController->writeTest();
}
}
class PageController {
public function writeTest() {
echo "TEST!";
}
}
class Intranet {
private $Configuration;
public $PageController; // Zet deze naar private om te voorkomen dat andere klassen er gebruik van kunnen maken
public function Intranet() {
$this->Configuration = new Configuration($this);
$this->PageController = new PageController();
$this->Configuration->doTest();
}
}
$Intranet = new Intranet();
?>