Добавить метот в определенный класс

Статус
В этой теме нельзя размещать новые ответы.

Mapkyc

Профессор
Регистрация
8 Май 2007
Сообщения
107
Реакции
47
Прошу не пинать сильно =)

Существует ли какой-нибудь прием добавить метод в уже определенный класс?

к примеру в одном файле у меня определен класс, а в другом возможный к нему плагин, который добавляет метод..
 
  • Заблокирован
  • #2
Бррр.. А зачем?
 
Прошу не пинать сильно =)
Существует ли какой-нибудь прием добавить метод в уже определенный класс?
к примеру в одном файле у меня определен класс, а в другом возможный к нему плагин, который добавляет метод..
Ты только что изобрел "Наследование":thenks: Только, к сожалению, не первый :smmne:
 
а я думал наследование в php уже есть)
 
ну да, про наследование я в курсе.. но разве может класс наследовать сам себя?

вот наследование
PHP:
class Parent {
....
}

class Child extends Parent {
...
}

а мне хотелось что-то типа
PHP:
class Parent {
....
}

class Parent extends Parent {
...
}


может типо как перегрузка функции в сях есть перегрузка класса какая-нибудь в php ?

просто пишу дополнение к оному быдлокоду, хочу обойтись без изменения оригинальных файлов
 
не может. Стандартными способами метод в существующем классе в php не переопределить. Можно, коненчо, извратиться, и придумать что-нибудь, с использованием __call или самодельных хуков.

Еще, кстати, есть расширение для пхп, которое умеет такое делать, но оно не очень распространено:
 
Это действительно имеет малую смысловую нагрузку. Если нужно расширить функционал класса - создай потомка. Не хочешь по каким-либо причинам - лезь в код класса. По моему так :)

Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
А тут "Яков родил Якова" получается :)
 
Если только немного поправить исходный класс то можешь так
PHP:
class Parent {
 function newMethod(){}
}
class OLDCLASS extends Parent {
...
}
а вообще что это за разработка, которая не позволяет менять старые файлы?
 

На .NET такое называется partial class. Можно обьявить его с этим ключевым словом и добавлять/перегружать методы. В статье он показал как это можно эмульнуть на PHP.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху