Ответить Новая тема Новый опрос 
 Переопределение метода
Drimean
Новичок
Сообщений: 11
Регистрация: 31-05-2010


12-07-2010 22:48
Здравствуйте!

Курил гугл, но так и не смог найти ничего про переопределение метод в шопе.

Задача такова:
Мне необходимо переопределить класс Category::getProducts(), но никак не могу найти, как сделать это красиво, без изменений кода в classes/Category.php.

Подскажите, как переопределять методы в престе, от чего наследовать, в какой директории держать.

Спасибо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


13-07-2010 00:14
Во-первых Category::getProducts() это не класс, а метод. Наследовать от родительского класса, в данном случае Category и держать в директории classes.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Drimean
Новичок
Сообщений: 11
Регистрация: 31-05-2010


13-07-2010 16:18
Отпечатался, признаю. Метод.=)

Правильно ли я понимаю, что надо сделать так:
Создать файл classes/NewCategory.php, в нём class NewCategory extends Category {}, где я переопределяю метод getProducts()?

Тогда возникает вопрос, как скрипт в том же файле category.php подхватит новый класс?
Учитывая, что на 21-й строке category.php :
$category = new Category//и т.д.

А метод __autoload выглядит так:

function __autoload($className)
{
if (!class_exists($className, false))
require_once(dirname(__FILE__).'/../classes/'.$className.'.php');
}

Следовательно, подцепиться старый класс Category, а не новый, в каком я переопределил нужный мне метод.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


13-07-2010 19:58
Category переименовать в OldCategory и создать класс Category который будет наследовать наследовать от OldCategory
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос