Суперглобальные переменные и ООП

Духовность™

Продвинутый новичок
Речь о массивах GPCRS. Я обернул все request-массивы в удобную обертку, осталось обернуть сессию. И я задался вопросом - а надо ли? Нет, конечно спрятать session-start и пр функции может и нужно, но насколько все это целесообразно для суперглобальных массивов? Может их использовать "как есть", а не писать под них адаптеры-обертки? Ваше мнение?
 

fixxxer

К.О.
Партнер клуба
Мое мнение - нафиг встроенные сессии. Нафиг нужен этот неполноценный хак с парсингом output buffer-а, если на уровне фреймворка можно все сделать по-человечески?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
какой парсинг output buffer-а связан с сессиями?
 

fixxxer

К.О.
Партнер клуба
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

Не, ну если выставить session.use_only_cookies = on то особо претензий то и нет. Но это не ок.

А вот с off претензий миллионы.
 

~WR~

Новичок
Простейшую обертку все равно лучше сделать.
Пусть даже сегодня она будет просто напрямую обращаться к $_SESSION.

Но завтра легко может возникнуть какая-нибудь хитрая задача, связанная с сессиями, и её будет во много раз легче реализовать, добавив парочку if'ов в обертку.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мне удобнее обращаться к данным внутри через свои методы-надстройки, или вызывать напрямую через:
PHP:
$this->Http->Request->Post['key'];
Но это если я пишу что-то объемное, а если мне надо куда-то допилить по-мелочи обращение к пост массиву и вытягивание с него данных, я туда не буду внедрять куски от своей либы.
 

A1x

Новичок
обертки для $_GET, $_POST - последнее что я стал бы делать
хотя для сессий мне удобнее использовать обертки чтобы избавится от проверок типа if (isset ($_SESSION['...']))

мне нравится идея реализации оберток сессии в магенте
примерно так:
PHP:
class UserSession extends Session {

    protected $_namespace = 'user';

    ...
}

class CheckoutSession extends Session {

    protected $_namespace = 'checkout';

    ...
}
т.е. можно создать несколько об"ектов сессий с изолированными друг от друга данными (каждый хранит свои данные в $_SESSION[$this->_namespace])
и собственной логикой
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
завтра легко может возникнуть какая-нибудь хитрая задача, связанная с сессиями, и её будет во много раз легче реализовать, добавив парочку if'ов в обертку.
вот завтра и обертку писать, иначе нарушение бритвы оккама
у меня за 5 лет такие задачи возникали ... пару раз
вместо обертки замечательно пишется session handler и в нем все нужные if-ы - посмотри, например, yii

>несколько об"ектов сессий с изолированными друг от друга данными
защитить программиста от самого себя, вечная история
и внезапно магенто такая громоздкая, оказывается
 

AmdY

Пью пиво
Команда форума
не пишу обёртки. профита особого не вижу и тупо руки не доходят, есть места которые критичнее.
вот завтра и обертку писать, иначе нарушение бритвы оккама
во-во. иногда лучше просто иметь ввиду что здесь может понадобиться затем обёртка или точка входа, но не фигачить избыточный код сразу.
 

fixxxer

К.О.
Партнер клуба
В 5.3 уже on из коробки. :)
Логично. Этот ужас с url_rewriter можно исправить только выбрасыванием на помойку. Ему дорога туда же, куда и всем остальным глупостям, тянущимся из ранних версий, типа magic_quotes.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Отличие в целях. Обертка диктует синтаксис через свой API и функционал своей реализацией, подложка добавляет возможности ничего не навязывая.
Хочешь - $_SESSION, хочешь - объектный API, хочешь перейти на сессии в базе - меняешь одну строку в конфиге, надо - унаследовал класс и добавил свою обработку, и никаких вмешательств в код приложения.
 

cDLEON

Онанист РНРСlub
grigori
В случае с суперглобалами ни кто ни чего не диктует.
При всём уважении, больше похоже на тупой флейм и распальцовку.
 
Сверху