Страница 1 из 2

PHP: статический класс и синглтон. Who is who.

Добавлено: 2013.06.25, 20:21
AlexSimp
Решил переместить сюда активное обсуждение сабжа из другой ветки.

Началось все с этого:
AlexSimp писал(а):
shkarbatov писал(а):Добрый день, есть сервис, написанный на yii.
Данных в себе он не хранит, получает от внешнего сервиса, обрабатывает и ему же и передает. Соответственно БД - нет, моделей, тоже - нет.
Есть контроллеры и хелперы (синглтоны).
Встала задача протестировать код.
Не совсем понимаю, с одной стороны вроде бы надо unit-тесты с другой вроде как функциональные.

Подскажите пожалуйста, как быть? И с чего начать.

Спасибо!
А расскажите пожалуйста, как вы контроллер сделали синглтоном?

И главное – зачем?:)
Кто что думает на этот счет, высказывайтесь! :)

Let the holy war begin! :twisted:

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
Изображение

Эй, ты чего так разнервничался, ну-ка спокойнее :x
Ну сделал он хелперы сущностями типа синглтон, я разве против? Я просто указал, что 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