У меня есть следующие работы в некотором отношении, я могу получить доступ к smarty с $ db-> tpl в моих скриптах.Несколько классов, как лучше всего продолжить
init.php включено в начало каждого файла
spl_autoload_register(function ($class) {
include 'inc/classes/' . $class . '.class.php';
});
class Database_Smarty extends Smarty {
function __construct() {
parent::__construct();
$this->setTemplateDir('templates'); // etc etc
}
}
class Filter_Database extends Database {
function __construct() {
parent::__construct();
}
}
class Formatting_Database extends Database {
function __construct() {
parent::__construct();
}
}
class Hashing_Database extends Database {
function __construct() {
parent::__construct();
}
}
Database.class.php Это работает просто отлично, я могу получить доступ к Smarty из моего объекта базы данных. Моя проблема возникает, когда я пытаюсь добавить Formatting_Database или любое из следующих расширений в конструкцию.
class Database {
// vars instantiated
public $tpl;
public $fmt;
public function __construct() {
# Connection here works
$this->tpl = new Database_Smarty;
// Example i cant do this it crashed php leading to no data
// sent notice in the browser.
$this->fmt = new Formatting_Database;
}
}
Formatting.class.php Остальные файлы классов в том же формате.
class Formatting {
public $fmt;
public function __construct() {
$this->fmt = new Formatting_Database;
}
Может кто-нибудь указать, что мне нужно изменить, чтобы получить доступ к классу форматирования из объекта $ db.
Извините, пропущено. Добавление этой строки (я только добавил ее снова, чтобы показать, что я уже пробовал) вызывает сбой. По сути, имейте в виду, что мы в конечном итоге должны иметь все мои объекты $ db и $ db-> tpl напрямую через фильтр или формат по мере необходимости, в зависимости от того, где это происходит. поэтому данные пользователя будут отфильтрованы для базы данных и данных, когда они будут отброшены, отфильтрованы и отформатированы для вывода браузера. Я просто ввязываюсь в беспорядок с заказами классов, которые я думаю. – Chris
@Chris Я думаю, что для этого потребуется немного больше, чем комментарий, чтобы предложить решение проблемы дизайна. Взгляните на: http://www.oodesign.com, это хороший ресурс по некоторым шаблонам, которые вы могли бы использовать. Для меня это будет ручка + бумага (+ чай и бисквит)! – button
Ive вернулось к чертежной доске, я, наконец, сумел рекурсивно добавить каждый класс, но он кажется громоздким и в долгосрочной перспективе проблематичным для рефакторинга, если это необходимо, поэтому я посмотрю на предложенную ссылку и сделаю хорошие заметки :), Спасибо за вашу помощь. – Chris