 Laravel по-русски
Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. У меня такой вопрос. Предположим что мне нужна какая-то конфигурация, доступная в любой точке проекта. В ней есть какой-нибудь идентификатор пользователя по которому в базе буду храниться различные данные, а также другие данные. Например так:
class Config{
    private $_uid;
    public function getUid(){
        if(empty($this->_uid)){
            /* Генерируем uid и сохраняем в переменную */
        }
        return $this->_uid;
    }
}И далее с помощью инъекций добавляем его куда нужно.
Правильно ли так делать?
Не в сети

Не в сети

Не в сети
Например примерно такой:
class IndexController extends Contoller{
    public function index(Config $config){
        $items = ItemsModel::whereUid($config->getUid())->get();
    }
}Какое-нибудь подобное использование может потребоваться например в middleware.
Не в сети
Предполагается только конфиг одного юзера. В нем будет содержаться уникальный идентификатор, для получения записей из бд. Например переменная указывающая на то в каком виде предоставлять информацию(список, мозаика) и т.д.
Не в сети

Не в сети
Да, текущего. А в чем преимущество ленивой инициализации перед инъекцией? Просто мне может потребоваться использовать данный конфиг в middleware, моделях. А где будет находиться это юзер проперти?
Не в сети

Не в сети
По факту он никуда не привязан. Эти значения будут находиться в куке в виде сериализованного массива. Когда пользователь заходит на сайт. Данный массив считывается и записывается в конфиг для более удобного обращения. А далее инжектить, как я писал во втором посте. Либо пользовательские объекты так инжектить не получится?
Не в сети

Не в сети
Понял, спс за ответы.
А можно еще пару вопросов не по теме, как к знающему разработчику?
1. Будет ли данная функция генерировать действительно уникальный идентификатор?
protected function _generateUid(Request $request)
    {
        return uniqid($request->session()->getId(), true);
    }Ведь в данный момент времени не может быть двух пользователей с одинаковым идентификатором сессии.
2. Правильно ли выносить запросы в модель? Например так:
class Price extends Model
     public function getBySid(string $sid)
    {
        try{
            return $this->whereSid($sid)->first();
        } catch (\Exception $e){
            return false;
        }
    }
}Не в сети

1) Должна  Если второй параметр не задать, то  лажает точно при большом кол-ве обращений —  проверено на практике.
 Если второй параметр не задать, то  лажает точно при большом кол-ве обращений —  проверено на практике.
Идентификатор сессии там уже  больше  для  «перебдеть»  
2) Вай нот? Криминала не вижу абсолютно. Можно конечно какой-то репозиторий прилепить, но если ради одного метода — то перебор.
Я стараюсь придерживаться принципа KISS  и не городить абстракции ради абстракций…
Не в сети
Понятно, хорошо, спасибо большое за помощь.
Идентификатор сессии там уже больше для «перебдеть» - Да, чтобы 200% уникальный результат получить)
Не в сети
Страницы 1