Классы в классе.

2People

Новичок
Классы в классе.

У меня есть 2 класса, 1 - для работы с Mysql, 2 - для работы с шаблонами (template). И есть 3 класс, в котором производится обработка данных и т.д. (main).

В крассе main куча функций, в 30% которых используется класс template и в 90% функций класс MySQL.


В каждой ф-ции заново создавать объект класса (template или mysql) мне кажется неправильным. Как поступить, сделать объекты классов (template или mysql) глобальными? Посоветуйте пожалуйста.
 

DimbIch

Новичок
2People
сделай

Class main
{
private $MYSQL = NULL;
private $TEMPLATE = NULL;
public function __construct
{
include_once INCLUDES.'/Template.php';
include_once INCLUDES.'/MySQL.php';
$this->MYSQL = new MYSQL();
$this->TEMPLATE = new TEMPLATE();
}
}
 

2People

Новичок
Я так понял, Агрегация - встраивание одного класса в другой, при этом обращаться к функциям встраиваемого класса можно из ф-ций основного.

Если это так, то мне это не подходит.
У меня есть index.php в котором объединиются (зависит от условий) н-ное количество классов (модулей).
Есть составные модули (сами содержат модули).

Все модули содержат слассы MySQL и template + различные специальные крассы.

Если классы (template и mysql) будут встроены в "рабочие" классы, а "рабочие" классы могут использоваться в других "рабочих" классах, то ничего хорошего не будет.

(template - это smarty)

-~{}~ 15.05.05 17:57:

Автор оригинала: DimbIch
2People
сделай

Class main
{
private $MYSQL = NULL;
private $TEMPLATE = NULL;
public function __construct
{
include_once INCLUDES.'/Template.php';
include_once INCLUDES.'/MySQL.php';
$this->MYSQL = new MYSQL();
$this->TEMPLATE = new TEMPLATE();
}
}
Из-за некоторых особенностей я не могу сделать include_once INCLUDES.'/Template.php';
 

DimbIch

Новичок
2People
имхо тебя спасет вот это

http://phppatterns.com/index.php/article/articleview/75/1/1/
 
Сверху