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

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.

Поддержите мнение:

Не существует понятий "статический класс" и "синглтон"
0
Голосов нет
Синглтон существует, а статический класс - нет
6
26%
Статический класс === Синглтон
2
9%
Синглтон !== Статический класс
11
48%
А что такое синглтон и что тут вообще происходит? О_о
4
17%
 
Всего голосов: 23

Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

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

Сообщение AlexSimp »

Решил переместить сюда активное обсуждение сабжа из другой ветки.

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

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

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

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

Let the holy war begin! :twisted:

P.S. Ну и опрос для отхвата лулзов :)

UPD Изменил варианты ответов, можете переголосовать
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Тестирование контроллеров и хелперов

Сообщение Skiller »

AlexSimp, он про хелперы.
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: Тестирование контроллеров и хелперов

Сообщение shkarbatov »

Да, имелось ввиду про хелперы.
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

А разве хелперы не статическими классами реализовываются?
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Тестирование контроллеров и хелперов

Сообщение flashimage »

AlexSimp писал(а):А разве хелперы не статическими классами реализовываются?
хм... так он и написал - сингтоны
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

shkarbatov писал(а):хелперы (синглтоны).
Skiller писал(а):AlexSimp, он про хелперы.
flashimage писал(а): хм... так он и написал - сингтоны
Друзья, сдается мне, вы дружно путаете понятия :)
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Тестирование контроллеров и хелперов

Сообщение Skiller »

Пздц, ничего я не путаю. Это ты все с ног на голову перевернул, тебе сказали что он просто захотел и сделал их так, другой вопрос хорошо или плохо.
>статическими классами
что за бред ты несешь? статические классы? :S

по теме:
если тестировать веб-интерфейс то тестируй phpunit+selenium2 или codeception. Никто unit-tests не тестирует контроллеры, т..к это бред, за исключением только если это REST, но и тогда все равно нужно тестировать грубо говоря как "конечный автомат".
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

Skiller писал(а):Пздц, ничего я не путаю. Это ты все с ног на голову перевернул, тебе сказали что он просто захотел и сделал их так, другой вопрос хорошо или плохо.
>статическими классами
что за бред ты несешь? статические классы? :S
Изображение

Эй, ты чего так разнервничался, ну-ка спокойнее :x
Ну сделал он хелперы сущностями типа синглтон, я разве против? Я просто указал, что 90% инфы о реализации хелперов в Yii описывает подход именно со статическими классами.
Skiller писал(а):что за бред ты несешь? статические классы? :S
Что именно тут тебе показалось бредом? Ты не знаешь, что такое статический класс в PHP?
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Тестирование контроллеров и хелперов

Сообщение Skiller »

Нет такого понятия как "статический класс", это абсурдно само по себе, есть статические методы, статические переменные (переменные класса). Я советую тебе выключить режим "умника" хоть ты и админ, и говорить все же по теме. А твое придумывание новых понятий, из-за того что ты не можешь нормально объясняться никому не поможет.
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

Skiller писал(а):Нет такого понятия как "статический класс", это абсурдно само по себе, есть статические методы, статические переменные (переменные класса). Я советую тебе выключить режим "умника" хоть ты и админ, и говорить все же по теме. А твое придумывание новых понятий, из-за того что ты не можешь нормально объясняться никому не поможет.
Дружочек, я советую тебе выключить режим быдла и общаться спокойно.

Если ты всю жизнь кодил исключительно на PHP, это не повод не признавать устоявшихся понятий:
http://ru.wikipedia.org/wiki/%D0%A1%D1% ... 1%81%D1%81

В PHP статическим классом принято называть класс, в котором все свойства и методы являются статическими. Еще вопросы?
Skiller писал(а):переменные (переменные класса)
раз уж пошла такая пляска, то это называется свойствами класса
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Тестирование контроллеров и хелперов

Сообщение Skiller »

Лол, я тебе не дружочек, замечено что почти все темы где отписываешься превращаются изза твоего "умничество" в говно, т.к. по сути ты говоришь мало, только "критикуешь". То что в C# можно поставить static перед class как бы намекает уже. Примером может служить эта тема, где по сути человеку мало кто ответил.
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

Skiller писал(а):Лол, я тебе не дружочек, замечено что почти все темы где отписываешься превращаются изза твоего "умничество" в говно, т.к. по сути ты говоришь мало, только "критикуешь". То что в C# можно поставить static перед class как бы намекает уже. Примером может служить эта тема, где по сути человеку мало кто ответил.
Как бы намекает на что?

Я всегда отвечаю по сути вопроса, когда а) мне есть что ответить по сути и б) вопрос задан корректно.
В данном случае я заметил интересный ньюанс в самом вопросе (контроллеры(как я подумал) и хелперы -- синглтоны), который идет вразрез с моими представлениями о реализации хелперов, поэтому я и решил уточнить, для себя. Извините, не хотел вызвать у вас такой баттхерт, сударь.

P.S. Всю личную неприязнь - в личку, еще раз повторится - дам молчанку.
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Тестирование контроллеров и хелперов

Сообщение flashimage »

AlexSimp, патерны, теория и С++ это конечно хорошо, но на практике, в PHP ты получишь просто синглтоны
Последний раз редактировалось flashimage 2013.06.26, 14:03, всего редактировалось 1 раз.
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

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

Сообщение futbolim »

синглтон по любому статический
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

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

Сообщение AlexSimp »

futbolim писал(а):синглтон по любому статический
Почему это? Цель синглтона - создание не более одного экземпляра класса. А если подразумевается создание сущности, то это уже не статический класс :)
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Re: Тестирование контроллеров и хелперов

Сообщение futbolim »

потому, что у него главный метод статический
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

Re: Re: Тестирование контроллеров и хелперов

Сообщение AlexSimp »

futbolim писал(а):потому, что у него главный метод статический
http://ru.wikipedia.org/wiki/%D0%A1%D1% ... 1%81%D1%81
Если верить Вике, то нужно чтобы каждый метод был статическим, а не только getInstance :)
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

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

Сообщение futbolim »

не, ну если настолько глубоко копать...
от вы завелись )
Аватара пользователя
AlexSimp
Сообщения: 568
Зарегистрирован: 2013.04.09, 11:30
Откуда: Киев

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

Сообщение AlexSimp »

futbolim писал(а):не, ну если настолько глубоко копать...
от вы завелись )
Я просто размышляю согласно университетскому курсу по ООП в плюсах :)

И насколько я помню, то академическое определение статического класса -- отсутствие возможности/необходимости создавать объект этого класса.
Жду, когда на форуме появятся вопросы "как сделать сайт на Yii?" и "как сложить два числа с помощью Yii?"...
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

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

Сообщение flashimage »

AlexSimp, не могли бы вы показать пример реализации хелперов в статическом классе на PHP
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Ответить