Size: a a a

2021 April 10

ВС

Владислав Субботин... in phpGeeks
Не, ну это нафиг хД
источник

DR

Dmitry Ranger in phpGeeks
Спасибо тебе за помощь. На самом деле в классе Storage в методе setStorageId нет проверки на возможное существование сессии, поэтому он циклично ПЕРЕЗАПИСЫВАЕТ новую сессию каждый раз при обновлении стриницы.
Добавил проверку
if (!isset($_SESSION[$id])) {
   $_SESSION[$id] = new Person();
}
источник

V

Victooor in phpGeeks
Вот тебе краткий код ревью.
class Storage
название, говоря, неудачное. Что за Storage? ShitStorage? Название должно отражать суть того что делает класс. Кроме того, подозреваю что не хватает интерфейса
if (!isset($_SESSION)) это какая-то дичь. Стартовала ли сессия проверяется через session_status
error_reporting(E_ALL) никогда, слышишь, никогда не суй это никуда. Установка уровня ошибок должна быть только в одном месте приложения, и уж точно не в классе работы с сессиями.
setStorageId($Id, $func)
переменные именуются либо со маленькой буквы, либо с заглавной. Но не и так и эдак. Придерживайся psr-12. Далее, что такое
$func
, почему не $value? Подразумевается что сюда будут добавляться какие-то функции?
getStorageId($Id) сюда следует добавить дефолтное значение, возвращаемое в случае если ключ не найден
$_SESSION[$Id] = $func что будет если в качестве $id передадут массив, например, или объект? Либо ограничивай входной тип, либо внутри проверяй и приводи к строковому ключу
источник

СМ

Сергей Моисеев... in phpGeeks
Хорошо, что разобрались
источник

DR

Dmitry Ranger in phpGeeks
Спасибо большое за такой развернутый ответ! Нашел много косяков)) еще раз благодарю
источник

EK

Evgeniy Kuvshinov in phpGeeks
ну вообще странный класс обертка над функциями сессий
источник

EK

Evgeniy Kuvshinov in phpGeeks
начиная с того что функция сессион старт в действительности зависит от параметров имя сессии (которое берется или из запроса или генерится новое)
источник

DR

Dmitry Ranger in phpGeeks
Пытался реализовать интерфейс set() get() для взаимодействия НЕ НАПРЯМУЮ с сессией, если вдруг кроме сессий будет еще другое хранилище (бд, кэш и тд)
источник

EK

Evgeniy Kuvshinov in phpGeeks
имеет side effect по отправки куки
источник

EK

Evgeniy Kuvshinov in phpGeeks
потом сессию надо начинать до первых символов отправки
источник

EK

Evgeniy Kuvshinov in phpGeeks
отсюда стандартный механизм такое себе
источник

SR

Sergey Romanenko in phpGeeks
вопрос про лицензии и опенсурс
источник

SR

Sergey Romanenko in phpGeeks
я же правильно понима что опенсурс подразумевает опенсурс лизцензию типа MIT, GPL и тд
источник

SR

Sergey Romanenko in phpGeeks
и вот эта лицнзия нифига не опенсурс же https://github.com/statamic/cms/blob/3.1/LICENSE.md ?
источник

SR

Sergey Romanenko in phpGeeks
или проект опенсурсом становится автоматом как только его код выкладывают и может теперь таким называться ?
источник

EK

Evgeniy Kuvshinov in phpGeeks
open source - открыте исходники
источник

EK

Evgeniy Kuvshinov in phpGeeks
лицензии это лицензии
источник

SR

Sergey Romanenko in phpGeeks
забавно
источник

SR

Sergey Romanenko in phpGeeks
то есть можно свой платный софт продвигать в опенсурс категориях, только потому что показал его код на публике
источник

РД

Ратмир Диронин... in phpGeeks
Есть открытые и закрытые лицензии. Опенсурс это вообще другая тема
источник