Вопрос про CHtml
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Вопрос про CHtml
Привет All.
Хотелось бы выслушать ваше мнение по данному вопросу.
Можно ли считать класс CHtml - божественным.
На него возложено так много, что мне иногда его жаль и кажется что он вот вот лопнет
1) Генерация тегов (методы tag и производные)
2) Работа с атрибутами и свойствами (renderAttributes, clientChange)
3) Генерация целых кусков html (errorSummary)
4) Работа с моделями (методы active..., value, )
5) Работа с js и css (ajax-методы, clientChange, assets и тд)
6) изменение и форматирование данных (encode, decode)
7) Генерация массивов данных (listData)
Где же тут "The Single Responsibility Principle"?
Хотелось бы выслушать ваше мнение по данному вопросу.
Можно ли считать класс CHtml - божественным.
На него возложено так много, что мне иногда его жаль и кажется что он вот вот лопнет
1) Генерация тегов (методы tag и производные)
2) Работа с атрибутами и свойствами (renderAttributes, clientChange)
3) Генерация целых кусков html (errorSummary)
4) Работа с моделями (методы active..., value, )
5) Работа с js и css (ajax-методы, clientChange, assets и тд)
6) изменение и форматирование данных (encode, decode)
7) Генерация массивов данных (listData)
Где же тут "The Single Responsibility Principle"?
Жду Yii 3!
- lancecoder
- Сообщения: 2532
- Зарегистрирован: 2012.06.26, 17:16
Re: Вопрос про CHtml
тут наверное и объектом его сложно назвать больше коллекция статических методов)
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
Зачем нам тогда классы, давайте вернемся к функциональному программированию.
Жду Yii 3!
Re: Вопрос про CHtml
Функциональное программирование на PHP?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
Чему удивляемся? Разве php4 не подразумевал ФП?anton44eg писал(а):Функциональное программирование на PHP?
Жду Yii 3!
Re: Вопрос про CHtml
Это называется процедурное программирование. Не сталкивались с lisr, haskell? Если нет, то почитайте что такое функциональное программирование, хотя бы http://ru.wikipedia.org/wiki/%D0%A4%D1% ... 0%B8%D0%B5 или http://habrahabr.ru/post/142351/
Re: Вопрос про CHtml
CHtml - это статический класс. Используется вполне по назначению. И представляет собой пространство имен. Такое ощущение что тема является просто поводом что-нибудь обсудить. В чем конфликт непонятно.
Красиво - это когда нет ничего лишнего.
Re: Вопрос про CHtml
Опять же, не путайте функциональное и процедурное программирование.web-leaf писал(а):Такое ощущение что у вас PHP плотно ассоциируется c ООП. И что ООП - это круто, а ФП стоит уровнем ниже и PHP до такого уровня опускать нельзя.
Так вот это большое заблуждение.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
Да точно, это я перепутал термины. Каюсь.anton44eg писал(а):Это называется процедурное программирование. Не сталкивались с lisr, haskell? Если нет, то почитайте что такое функциональное программирование, хотя бы http://ru.wikipedia.org/wiki/%D0%A4%D1% ... 0%B8%D0%B5 или http://habrahabr.ru/post/142351/
Жду Yii 3!
Re: Вопрос про CHtml
Тоже говорил функциональное, подразумевал процедурное. Поэтому взял свои слова обратно.anton44eg писал(а):Опять же, не путайте функциональное и процедурное программирование.
Красиво - это когда нет ничего лишнего.
Re: Вопрос про CHtml
А по теме - чем плох класс со статическими методами? Типичный helper
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
web-leaf, не PHP у меня ассоциируется с ООП, а программирование в целом ) но при этом я не считаю что ПП это низко. Оно имеет право на жизнь, но меня не устраивает.
А так как Yii претендует на MVC фреймворк, то и ООП нужно придерживаться или нет?
А так как Yii претендует на MVC фреймворк, то и ООП нужно придерживаться или нет?
Жду Yii 3!
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
А кто говорит что он плох статическими методами? Вопрос почему куча ответственности замешано в одном.anton44eg писал(а):А по теме - чем плох класс со статическими методами? Типичный helper
Жду Yii 3!
- Stamm
- Сообщения: 407
- Зарегистрирован: 2010.03.14, 18:59
- Откуда: Россия, Москва
- Контактная информация:
Re: Вопрос про CHtml
Путь до файла как бэ намекает, что он хелпер: "web/helpers/CHtml.php".
mc-bear, а ты думаешь его разделить на несколько статических классов, разделив функциональность: html, js, error, etc. Или применить ООП с паттернами?
Вообще я не против ООП =), но в этом случае нужно очень сильно подумать, как это решить. Будет ли достигнуть нужный эффект? Не усложнит ли это логику и не прибавит избыточную гибкость, а вследствии запутанность?
Много вопросов. Отвечаю на твой вопрос: для меня пока это не ясно.
mc-bear, а ты думаешь его разделить на несколько статических классов, разделив функциональность: html, js, error, etc. Или применить ООП с паттернами?
Вообще я не против ООП =), но в этом случае нужно очень сильно подумать, как это решить. Будет ли достигнуть нужный эффект? Не усложнит ли это логику и не прибавит избыточную гибкость, а вследствии запутанность?
Много вопросов. Отвечаю на твой вопрос: для меня пока это не ясно.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
А что такое helper, чем он отличается от обычных объектов в ООП?Stamm писал(а):Путь до файла как бэ намекает, что он хелпер
Жду Yii 3!
- lancecoder
- Сообщения: 2532
- Зарегистрирован: 2012.06.26, 17:16
Re: Вопрос про CHtml
попробую еще раз высказаться - класс и объект это какбэ разные вещи на сколько я это представляю, в статич классе нельзя создать экземпляр. хелперы в основном группируют наборы методов схожих по цели назначения, я так понимаю что при создании объекта это уже называется api для работы с классом - имхо
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
эффтоп, но я считаю (возможно плохо выражусь) что, объект это конкретный экземпляр класса который имеет конкретное состояние и конкретное свойства. CHtml в данном случае можно считать объектом, даже с его только статическими параметрами и методами, потому что он имеет эти самые разные состояния, базируясь на своих параметрах (requiredCss и тд)
Жду Yii 3!
- lancecoder
- Сообщения: 2532
- Зарегистрирован: 2012.06.26, 17:16
Re: Вопрос про CHtml
попробуйте создать клон или другой экземпляр объекта с другим состоянием, свойствами..
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
Так мы еще не перешли к решению проблемы, мы как бы еще не определи наличие ее (проблемы).Stamm писал(а):нужно очень сильно подумать, как это решить. Будет ли достигнуть нужный эффект? Не усложнит ли это логику и не прибавит избыточную гибкость, а вследствии запутанность
Вот моя проблема в том, что столкнувшись с тем что нужно поменять работу ajax,
я не могу просто изменить метод CHTml::ajax тогда нужно думать как этот класс подключить чтоб не полетела та часть кода где юзается CHTml просто для тегов, все виджеты и прочее. Мне нужно все делать заново, что совсем нарушает ООП.
Жду Yii 3!
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Вопрос про CHtml
так мне это не надо, и это плохо, потому что придет кто-то после тебя, добавит расширение изменив эти свойства и весь твой код ляжет.lancecoder писал(а):попробуйте создать клон или другой экземпляр объекта с другим состоянием, свойствами..
Жду Yii 3!