Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как получить имя дочернего класса внутри класса-родителя? [2]
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
DelphinPRO, можете обосновать свой ответ? в чем хрень? чем плох мой метод?
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
caballero
Отправлено: 29 Мая, 2012 - 09:59:33
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Eazy-E пишет:
DelphinPRO, можете обосновать свой ответ? в чем хрень? чем плох мой метод?
Раз он твой ты и должен обосновывать его разумность. А плох он тем что в твоей архитектуре ты не можешь разрулить элементарные вещи. Я апример так и не понял что ты хочешь сделать и зачем сваливать все MVC в с один клас.
Просто сядь и подумай что ты хочешь сделать а ты берешь с инета абстрактные картинки и пытаешся на них что то построить просто заменяя цветные кубики классами.
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
Вот, что я хочу:
Controller передает в Model переменную содержащую текст. Model добавляет теги к тексту и передает их обратно в Controller. Controller передает переменную в View. Я же хочу расширить функционал Model извне, чтобы можно было, скажем, не только добавлять теги <strong>, но и теги <em> и т.д. и т.п. Если еще короче, я хочу ПЕРЕХВАТИТЬ переменную $text, которая уже обработана в Model, но еще не передана в View.
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
caballero
Отправлено: 29 Мая, 2012 - 10:35:20
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Controller передает в Model переменную содержащую текст. Model добавляет теги к тексту и передает их обратно в Controller. Controller передает переменную в View.
к чему такие сложности. view и сам может запросить данные у модели, ему э лучше хнать что надо отрисовывать и какие для этого данные нужны.
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
DeepVarvar
Отправлено: 29 Мая, 2012 - 11:10:58
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Жесть. Не ломайте ООП. Вам все говорят что вы бред пишите.
Я вам говорил выше как создать многофункциональные сущности внутри одной "родительской". Вы же замкнулись на невозможной хренатени:
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
DeepVarvar, вероятно для меня плохо доходит предоставьте хоть простенький пример. Спасибо. (Добавление) DeepVarvar, все, перечитал ваши первые посты, доперло наконец-то до меня Благодарю за помощь!
Исходный код этого класса закрыт от стороннего разработчика, которому понадобилось, чтобы модель умела еще делать курсивный текст. Что он сделает? Унаследует свой класс от базового.
Всё - программист получил новую модель которая умеет делать и жирный и курсивный текст.
Теперь вопрос - как вашей системе использовать MyModel вместо Model?
Ответ прост - пусть этим занимается какой-нибудь менеджер расширений.
В зависимости от внешних условий он будет определять имя класса модели (или пусть об этом думает сторонний программист, если модель вызывается из его же контроллера)
и создавать объект этого класса
подключением нужных файлов с соответствующими классами пусть занимается автозагрузчик.
=======
на всякий случай задам вопрос еще раз, если вы его не заметили.
Зачем пихать в один класс несколько сущностей? Почему бы не сделать так, как делают все - для контроллера, модели и вида - отдельные классы\файлы?
=======
----- Чем больше узнаю, тем больше я не знаю.
etoYA
Отправлено: 29 Мая, 2012 - 12:51:23
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
На, посмотри. Думаю сразу же поймешь, как работает это все по отдельности. (создай отдельный хост, так как он привязан к корню).
UPD
Или отредактируй в роутере application/controllers/router
Если Вы хотете перехватыватьданные из модели, то зделайте это плагинатором, до возвращения в контроллер.
Плагинатор получая данные проверяет, есть ли плагин, подходят ли для него данные и т.д.
делает свое грязное дело и пускает все дальше в итоге, все кроме плагинатора можно сделать закрытым, он будет только снифить и коверкать данные.
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
да понял я уже, что все это хрень и можно обойтись без костылей
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
etoYA
Отправлено: 29 Мая, 2012 - 14:56:39
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
tato, ему нужно просто почитать про роли модели-вьюхи-контроллера, тогда у него сразу же отпадет желание делать плагинатор. Ведь, контроллер по сути и есть плагинатор... (Добавление)
А перехватывать данные можно и во фронт-контроллере
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.