Взимане на масив дефиниран в предния клас? Как? :)

DownFall

Registered
Започнах да си пиша сайта на ново, като този път съм решил да използвам ООП. Всичко е ок, но не мога да разбера как да взема стойността на масив дефиниран в предния клас.. Ето и кода

index.php
Код:
<?php
require_once 'lib/classes/class.first.php';
require_once 'lib/classes/class.second.php';

class Launcher
{
	public function main()
	{
		$class1 = new first;
		$class2 = new second;
			
		echo $class2 -> parseTemplate();
	}
}

$Launch = new Launcher;
$Launch -> main();
?>

config.php
Код:
<?php
$config['template'] = 'templates/default';
?>

class.first.php
Код:
<?php
class first
{
	protected $config;

	function __construct()
	{
		require_once 'config.php';
		$this -> config = $config;
	}
}
?>

class.second.php
Код:
<?php
class second extends first
{
	public function parseTemplate()
	{
		$fo = fopen($this -> config['template'] . '/template.html', 'r');
		$fr = fread($fo, filesize($this -> config['template'] . '/template.html'));
		fclose($fo);
		
		$input = array
		(
			'{CSS}'
		);
		
		$output = array
		(
			$this -> config['template'] . '/template.css'
		);
		
		return str_replace($input, $output, $fr);
	}
}
?>

Опитах в second класа да използвам parent::config, parent::$config и т.н., но не става и нямам идея как ще се получи, все още съм зелен явно :)

Промених $config в class.first.php да стане public и я извиках от index - ок си е, проблема е единствено, че не мога да го изведа във втория клас :)

Надявам се да ударите едно рамо, благодаря предварително :)
 
config не е масив, а го викаш като масив. Пробвай да махнеш $this->config['template']
ПП:
Вижам че си кращаваш функциите правилно, но класовете не. Класовете започват с главна буква за да се различават от методите и свойствата.
 
SveXteZ каза:
config не е масив, а го викаш като масив. Пробвай да махнеш $this->config['template']
ПП:
Вижам че си кращаваш функциите правилно, но класовете не. Класовете започват с главна буква за да се различават от методите и свойствата.
Масив е, просто дадох частта от кода, която прецених, че е важната, не целия :)

Това е config иначе

Код:
Array
(
    [website] => Array
        (
            [url] => http://test.mydomain.com/
            [path] => /var/www//test
        )
 
    [forum] => Array
        (
            [url] => http://forums.mydomain.com/
            [path] => /var/www/forums
        )
 
    [template] => templates/default
    [mysql] => Array
        (
            [server] => 127.0.0.1
            [name] => forums
            [user] => root
            [passwd] => NULL
            [prefix] => smf_
        )
 
)

Имената на класовете също не са такива в самия код, а ги променях в момента, в който пусках темата, но надали това е най-важното..Мисля, че е важна структурата, не имената :) Просто ми трябва идея, как да изведа масива във втория клас...
 

Back
Горе