Страница 1 из 2
PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.25, 20:21
AlexSimp
Решил переместить сюда активное обсуждение сабжа из другой
ветки.
Началось все с этого:
AlexSimp писал(а):shkarbatov писал(а):Добрый день, есть сервис, написанный на yii.
Данных в себе он не хранит, получает от внешнего сервиса, обрабатывает и ему же и передает. Соответственно БД - нет, моделей, тоже - нет.
Есть контроллеры и хелперы (синглтоны).
Встала задача протестировать код.
Не совсем понимаю, с одной стороны вроде бы надо unit-тесты с другой вроде как функциональные.
Подскажите пожалуйста, как быть? И с чего начать.
Спасибо!
А расскажите пожалуйста, как вы контроллер сделали синглтоном?
И главное – зачем?:)
Кто что думает на этот счет, высказывайтесь!
Let the holy war begin!
P.S. Ну и опрос для отхвата лулзов
UPD Изменил варианты ответов, можете переголосовать
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.25, 20:49
Skiller
AlexSimp, он про хелперы.
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 09:15
shkarbatov
Да, имелось ввиду про хелперы.
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 10:12
AlexSimp
А разве хелперы не статическими классами реализовываются?
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 10:16
flashimage
AlexSimp писал(а):А разве хелперы не статическими классами реализовываются?
хм... так он и написал - сингтоны
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 10:33
AlexSimp
shkarbatov писал(а):хелперы (синглтоны).
Skiller писал(а):AlexSimp, он про хелперы.
flashimage писал(а):
хм... так он и написал - сингтоны
Друзья, сдается мне, вы дружно путаете
понятия
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:04
Skiller
Пздц, ничего я не путаю. Это ты все с ног на голову перевернул, тебе сказали что он просто захотел и сделал их так, другой вопрос хорошо или плохо.
>статическими классами
что за бред ты несешь? статические классы? :S
по теме:
если тестировать веб-интерфейс то тестируй phpunit+selenium2 или codeception. Никто unit-tests не тестирует контроллеры, т..к это бред, за исключением только если это REST, но и тогда все равно нужно тестировать грубо говоря как "конечный автомат".
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:19
AlexSimp
Skiller писал(а):Пздц, ничего я не путаю. Это ты все с ног на голову перевернул, тебе сказали что он просто захотел и сделал их так, другой вопрос хорошо или плохо.
>статическими классами
что за бред ты несешь? статические классы? :S
Эй, ты чего так разнервничался, ну-ка спокойнее
Ну сделал он хелперы сущностями типа синглтон, я разве против? Я просто указал, что 90%
инфы о реализации хелперов в Yii описывает подход именно со статическими классами.
Skiller писал(а):что за бред ты несешь? статические классы? :S
Что именно тут тебе показалось бредом? Ты не знаешь, что такое
статический класс в PHP?
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:21
Skiller
Нет такого понятия как "статический класс", это абсурдно само по себе, есть статические методы, статические переменные (переменные класса). Я советую тебе выключить режим "умника" хоть ты и админ, и говорить все же по теме. А твое придумывание новых понятий, из-за того что ты не можешь нормально объясняться никому не поможет.
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:27
AlexSimp
Skiller писал(а):Нет такого понятия как "статический класс", это абсурдно само по себе, есть статические методы, статические переменные (переменные класса). Я советую тебе выключить режим "умника" хоть ты и админ, и говорить все же по теме. А твое придумывание новых понятий, из-за того что ты не можешь нормально объясняться никому не поможет.
Дружочек, я советую тебе выключить режим быдла и общаться спокойно.
Если ты всю жизнь кодил исключительно на PHP, это не повод не признавать устоявшихся понятий:
http://ru.wikipedia.org/wiki/%D0%A1%D1% ... 1%81%D1%81
В PHP статическим классом принято называть класс, в котором все свойства и методы являются статическими. Еще вопросы?
Skiller писал(а):переменные (переменные класса)
раз уж пошла такая пляска, то это называется
свойствами класса
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:30
Skiller
Лол, я тебе не дружочек, замечено что почти все темы где отписываешься превращаются изза твоего "умничество" в говно, т.к. по сути ты говоришь мало, только "критикуешь". То что в C# можно поставить static перед class как бы намекает уже. Примером может служить эта тема, где по сути человеку мало кто ответил.
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:39
AlexSimp
Skiller писал(а):Лол, я тебе не дружочек, замечено что почти все темы где отписываешься превращаются изза твоего "умничество" в говно, т.к. по сути ты говоришь мало, только "критикуешь". То что в C# можно поставить static перед class как бы намекает уже. Примером может служить эта тема, где по сути человеку мало кто ответил.
Как бы намекает на что?
Я всегда отвечаю по сути вопроса, когда
а) мне есть что ответить по сути и
б) вопрос задан корректно.
В данном случае я заметил интересный ньюанс в самом вопросе (
контроллеры(как я подумал) и хелперы -- синглтоны), который идет вразрез с моими представлениями о реализации хелперов, поэтому я и решил уточнить, для себя. Извините, не хотел вызвать у вас такой баттхерт, сударь.
P.S. Всю личную неприязнь - в личку, еще раз повторится - дам молчанку.
Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 11:50
flashimage
AlexSimp, патерны, теория и С++ это конечно хорошо, но на практике, в PHP ты получишь просто синглтоны
Re: PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.26, 12:25
futbolim
синглтон по любому статический
Re: PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.26, 12:34
AlexSimp
futbolim писал(а):синглтон по любому статический
Почему это?
Цель синглтона - создание не более одного экземпляра класса. А если подразумевается создание сущности, то это уже не статический класс
Re: Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 12:35
futbolim
потому, что у него главный метод статический
Re: Re: Тестирование контроллеров и хелперов
Добавлено: 2013.06.26, 12:45
AlexSimp
futbolim писал(а):потому, что у него главный метод статический
http://ru.wikipedia.org/wiki/%D0%A1%D1% ... 1%81%D1%81
Если верить Вике, то нужно чтобы
каждый метод был статическим, а не только getInstance
Re: PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.26, 12:47
futbolim
не, ну если настолько глубоко копать...
от вы завелись )
Re: PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.26, 12:50
AlexSimp
futbolim писал(а):не, ну если настолько глубоко копать...
от вы завелись )
Я просто размышляю согласно университетскому курсу по ООП в плюсах
И насколько я помню, то академическое определение
статического класса -- отсутствие возможности/необходимости создавать объект этого класса.
Re: PHP: статический класс и синглтон. Who is who.
Добавлено: 2013.06.26, 14:59
flashimage
AlexSimp, не могли бы вы показать пример реализации хелперов в статическом классе на PHP