![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| GZep |
|
||||||||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
Всем привед!
Меня достаточно давно мучает такой вот вопрос: Имеется базовый класс
У этого класса имеется конструктор, который должен дополнить текущий класс новыми методами
вызываем класс
соответственно файл file.php
ну и должно получится что-то типо вот такого
Я понимаю, что написАл неправильно, просто хотел наглядно показать, что именно я хочу сделать... Как такое реализовать? Добавлено через 37 секунд З.Ы. совместимость с пхп 4 не нужна... только 5-я версия... -------------------- ![]() ![]() |
||||||||||
|
|||||||||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
3-й пых был чистым интерпертатором, там нечто подобное было возможно.
А зачем, если не секрет это нужно? ИМХО, это надругательство над самыми основами. Есть перехватчики, типа, __call(), на их основе можно попробовать реализовать динамическое добавление методов. Но все-таки, зачем? |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
vasac, ну это что-то типо абстрактного класса.
идет обращение к основному классу и сразуже ему передается параметр, говорящмй какие именно методы ему надо дополнить в себе. просто это глупо выглядит на моем примере, ибо классы пустые... -------------------- ![]() ![]() |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
GZep,
Что-то вроде
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
можно посмотреть описание __autoload()
|
|||
|
||||
| GZep |
|
||||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
да неее...
наверное я плохо описал то, что нужно. Вот другой пример: файл 1.php
файл 2.php
файл index.php
необходимо именно разделение класса на части с последующим выборочным собиранием в единое целое. есть идеи? -------------------- ![]() ![]() |
||||||
|
|||||||
| xolod |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 4 Всего: 13 |
Например так, только функцию(и) function ok надо тоже обернуть в класс с названием, которое передали на фабрику (поведение можно изменить, как хочется):
Только накой вам этот слон? Это сообщение отредактировал(а) xolod - 2.4.2007, 18:23 |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
xolod, по-моему идею уловил, щас буду пробовать.
я это чуть выше писАл... (это что-то типа объекта, который сам себя дополняет нужными драйверами для различный действий. Особенность этого класса - наличие "псевдо мозгов" -------------------- ![]() ![]() |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
GZep,
Реализовать в принципе можно, но как ты собираешься разрешать ситуацию, когда а базовый класс (тот, который универсальный) пытаемся засунуть методы двух классов с одинаковыми именами(т.е. A: -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
SamDark, этим принебрегаем, потому что я на 100% знаю - такого не будет.
КАК??? -------------------- ![]() ![]() |
|||
|
||||
| Glip |
|
||||||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
я так понимаю, что наличие того или иного метода определяется в зависимости от имени файла передаваемого параметром
то есть если
то не факт что там будет метод ok() я согласен с vasac,
мне кажется типичный случай полиморфизма
раскладываем классы по файлам, в данном случае animal.class.php, cat.class.php, dog.class.php и примерно с такой реализацией автолад
создание объектов быдет выглядеть
результат практически тот же что и вашем примере с двумя ok() пока у меня сложилось впечатление о некотором недопонимании теории Это сообщение отредактировал(а) Glip - 14.4.2007, 21:53 |
||||||||||||||||||
|
|||||||||||||||||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
В том то и дело, что это - распространенный вариант, а нужно чтобы было:
на счет того момента, когда в подгружаемом классе не будет того или иного метода - это не для моего случая (из-за уверенности, что такого не будет)... Даже не знаю....наверное так просто не возможно сделать. Кто-нибудь может рассказать как реализуется подгрузка "плагинов" в смарти, например. Может идея появится... -------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |