• Laravel queue проблема с timeout, как исправить?

    @bavial
    Попробуй в config/queue.php в своем драйвере увеличить retry_after, например до 1800. Этот параметр отвечает за timeout, а не за то как он назван.
    Ответ написан
    2 комментария
  • Как по this получить текущий соседний класс?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    $('.input-text').on('input', function() {
      var classList = $(this).attr('class').split(/\s+/);
      for (var item of classList) {
        if (item === 'input-email') {
              console.log('ok');
        }
      }
    });
    Ответ написан
  • Зачем использовать реляционные субд для этой ситуации?

    @xfg
    Если комментариев к статье неограниченное количество, то хранить данные таким образом - неудачная идея. В mongodb документ по умолчанию не может превышать более 16 mb, но даже при отсутствии подобного ограничения, это привело бы к единовременному считыванию большого объема данных в память. В таком случае данные следует моделировать также, как и в РСУБД.

    Есть CAP-теорема и выбирать тип базы данных нужно исходя из того, какие 2 из 3 свойств для вас важнее. РСУБД дают согласованность и доступность (CA), но жертвуют возможностью разделения такой базы, nosql решения идут другим путем и жертвуют согласованностью в пользу доступности и устойчивости к разделению (AP). Согласованность данных в таких системах достигается при помощи шаблона Saga вместо ACID.

    В целом NoSQL это про проекты данные которых не помещаются в рамках одного сервера, а не про то, каким образом моделировать эти данные. Вложенные документы в mongodb - это скорее следствие её архитектуры, которое используют как маркетинговый ход, чем решение, которое будет использоваться повсеместно. В подавляющем большинстве случаев документы будут ссылаться друг на друга, точно также как это происходит и в РСУБД.

    Для проекта с крохотными объемами данных логичнее выбирать РСУБД и тем самым значительно упростить себе жизнь. Но в целом как используют NoSQL, шардируют данные и как достигают согласованности данных при отсутствии ACID знать желательно, хотя бы в общих чертах.

    Самое ужасное, это выбрать базу данных и использовать её неправильно, как пример документа с вложенными комментариями при условии их бесконечности в mongodb. Пишем скрипт генерирующий триллион комментариев к статье, а затем просим нам выдать эту статью и сайт уходит в офф. Хорошо что в mongodb есть защита от дурака.
    Ответ написан
    1 комментарий
  • Как в Laravel создать собственное правило валидации?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Вы можете создать своё правило любым описанным в документации способом.
    Ответ написан
    Комментировать
  • Можно ли в header Authorization передать зашифрованный ключ без Bearer?

    DevMan
    @DevMan
    можно, но зачем?
    для доступа к апи достаточно иметь валидный токен, остальное не имеет значения.
    Ответ написан
    Комментировать
  • Ошибка при попытке получить связанные данные из другой модели,как исправить?

    glaphire
    @glaphire
    PHP developer
    Попробуй явно указать в релейшенах foreign_key и local_key
    https://laravel.com/docs/5.8/eloquent-relationship...
    Ответ написан
    Комментировать
  • Почему не отображается шаблон компонента?

    Вы указали, что у home есть потомок catalog, и хотите, чтобы этот каталог появился вместо родителя (т.е. home). Так это не работает. Вам нужно в шаблоне home добавить <router-outlet></router-outlet> для его потомков.

    Component({
      selector: 'home',
      template: `
        <div>
          <h1>Home</h1>
          <h3>Total users: # {{users?.length}}</h3>
        </div>
    
        <router-outlet></router-outlet>
      `
    })


    Либо наверное вот так, если пытаться следовать вашей задумке:

    RouterModule.forRoot([
          { path: 'login', component: LoginViewComponent },
          { path: 'home', component: HomeViewComponent,
          // children: [
          //   {
          //     path: 'catalog',
          //     component: CatalogViewComponent           
          //   }
          // ]
          },
          { path: 'home/catalog', component: CatalogViewComponent },
          { path: '**', redirectTo: 'login' }
        ])


    Но это чот не очень красиво получается :с
    Ответ написан
    Комментировать
  • Насколько правильно использовать package rate против ddos атак?

    @PapaStifflera
    Родился, вырос...
    Рейтлимитеры предназначены не для защиты от (D)DoS-атак, а для ограничения количества запросов на эндпоинт(ы) в единицу времени. А если на ваш сервак пустят хороший поток UDP-трафа, то вас не спасет ни какой рейтлимитер, т.к. до него даже дело не дойдет.
    Ответ написан
    8 комментариев
  • Нужен ли класс в этом случае? Или можно держать функцию особняком?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это проблема упрощения.
    Реальный код трудно понять, поскольку он учитывает множество нюансов, важных в реальной жизни.
    поэтому в обучающих материалах код упрощают, так что начинает казаться что без классов будет даже проще.

    Кроме того, авторы видеокурсов в большинстве своем - неграмотные имбецилы, которые с трудом понимают код, который пишут. Кроме шуток. Пример. Вот так пишут обезьяны:
    $i = 0;
        $newsList = array();
        while($row = $result->fetch()) {
          $newsList[$i]['id'] = $row['id'];
          $newsList[$i]['title'] = $row['title'];
          $newsList[$i]['date'] = $row['date'];
          $newsList[$i]['author_name'] = $row['author_name'];
          $newsList[$i]['short_content'] = $row['short_content'];
          $i++;
        }
        return $newsList;

    Реально, макаки.
    Этот гамадрил где-то сам увидел обучающий материал из 1990-х годов прошлого века, запомнил его, и теперь лепит уже в свои "обучающие ведидео".
    при том что если бы он понимал смысл этого кода, то написал бы просто
    $newsList = array();
        while($row = $result->fetch()) {
          $newsList[] = $row;
        }
        return $newsList;

    Поскольку $row уже содержит все нужные данные и переливать их из пустого в порожнее не нужно.
    А если бы наш бабуин хотя бы раз в жизни поинтересовался инструментами, которые он использует, то написал бы и вовсе одну строчку,

    return $result->fetchAll();

    Поскольку все уже написано до нас - надо только руку протянуть и использовать готовое.

    И это я не говорю о том, что класс насковозь дырявый в плане безопасности.

    Если вернуться к теме "отдельные функции или класс", то для примера приведенного здесь класс, действительно, не нужен. Любая коллекция статических методов может быть заменена на набор функций.

    В нормальной же модели класс нужен, поскольку в ней будут использоваться переменные класса, например соединение с БД. Таким образом его можно будет передать в конструктор один раз и не писать соединение в каждом методе.
    Также в модели удобно прописать имя таблицы. Тогда множество методов можно будет унаследовать от единого прототипа. например

    abstract class Model {
        protected $table;
        protected $db;
        public function __construct($db) {
             $this->db = $db;
        }
        public function find($id) {
            $sql = "SELECT * FROM `$this->table` WHERE id=?";
            $stmt = $this->db->prepare($sql);
            $stmt->execute([$id]);
            return $stmt->fetch();
        }
    }
    class News extends Model {
            protected $table = 'news';
    }
    $news = new News($db);
    $article = $news->find($id);


    Вот это уже будет минимальное оопэ, и использование класса будет более чем оправдано - один раз написали код, а потом его используем.

    Если хочется нормальных обучающих материалов, рекомендую канал Дмитрия Елисеева, https://www.youtube.com/user/ElisDN/videos
    Ответ написан
  • Как хранить атрибуты "товара" в laravel, если есть общие и уникальные атрибуты?

    @EvgeniiR
    https://github.com/EvgeniiR
    Вообще, то что вы сделали называется EAV(Entity, Attribute, Value), красивее и быстрее можно делать используя json - https://coussej.github.io/2016/01/14/Replacing-EAV...

    Из-за общих полей проблемы вряд ли возникнут, рано пока оптимизировать.
    Ответ написан
    2 комментария
  • Как вручную очистить кэш Laravel?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    1. Открываем настройки кэша.
    2. Смотрим.
    3. ...
    4. PROFIT!

    Уже несколько лет как любой приличный шаред-хостинг даёт доступ к консоли. Может, надо перестать жевать кактус?
    Ответ написан
    1 комментарий
  • Подключение к базе данных MySql, как правильно и современно?

    Stalker_RED
    @Stalker_RED
    Отдельно про пароли:
    Как ни странно, на офф-сайте есть неплохой мануал, где рассказано не только как правильнее, но и почему
    https://www.php.net/manual/ru/faq.passwords.php
    https://php.net/manual/ru/book.password.php
    Ответ написан
    1 комментарий
  • Уехал в Москву, но не тяну по сложности, стоит ли возвращаться домой?

    @itsjustmypage
    Если взяли, значит устраиваешь. Продолжай штудировать и спрашивать. Английский технический довольно простой и переводчики такое нормально переводят.

    KEEP-CALM-POSTER-LOW_large__78588.129146
    Ответ написан
    Комментировать
  • Объединение двух запросов и их вывод в пагинацию как?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Читал ли ты документацию по коллекциям?

    Хотя мне видится, что надо читать документацию по Query Builder, потому что если оба запроса вернут хотя бы по сотне вариантов, то будет весело.
    Ответ написан
    7 комментариев
  • Как сделать авторизацию в react.js?

    Вполне хорошее решение - проверять права доступа в onEnter. А для чего вам понадобились кукис (касаемо авторизации)? Токены лучше всего хранить в localstorage и синхронизировать с вашим store.

    Сгруппируйте роуты, для которых нужна авторизация и ставьте коллбэк туда:
    <Route path="/" component={App}>
      <Route onEnter={checkAuth}>{/* Auth routes */}</Route>
      {/* Home page route */}
      <IndexRoute component={Home}>
      {/* Other public routes /*}
      <Route path="about" component={AboutPage} />
    </Route>
    Ответ написан
    5 комментариев
  • Какие шаблоны проектирования js применяются на практике чаще всего?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    какие паттерны применяются чаще всего на практике и где

    Сразу отмечу, что все это чисто мое имхо, которое может не совпадать с мнением окружающих. В контексте фронтенда обычно все довольно просто. По моим наблюдениям в среднем сайте могут иметь смысл:
    1. Модули (делим код на независимые части)
    2. Фабрики (для компонентов интерфейса)
    3. Синглтоны (для хранилищ, точек сбора полифиллов / утилит и.т.д.)
    4. Адаптеры (для зависимостей и полифилов, которые могут измениться / выпилиться)
    5. Наблюдатели (для сбора происходящих событий в одном месте)
    6. Хранители (для сохранения действий пользователя и "Ctrl-Z")
    7. Стратегии (если действуем в зависимости от прилетевших данных)

    Другим паттернам применение вижу редко, только если под какую-то замороченную бизнес-логику. Хотя кого я обманываю, на среднем сайте обычно происходит только один паттерн - доширак из костылей. Ну и стоит сказать, что SPA-фреймворки имеют свойство навязывать свои подходы к решению задач, но это отдельная тема.

    Важно понимать, что паттерны проектирования - это просто хорошие идеи по поводу того, как организовать большой объем кода в той или иной ситуации. Это не "изучи тайное знание, запомни, и делай так всегда", не "используй паттерны, потому что великие их используют", это скорее "если не уверен как организовать код, возьми готовую идею, она вроде работает". Если вы будете просто решать задачи, то через N лет практики вы сами их все "изобретете", только не будете знать, что у них есть названия. Эффективно будет организовать себе заметку о том, какие из этих идей для чего примерно применяют, а потом, в процессе работы, в нее подглядывать, если встал вопрос "как организовать этот код".
    Ответ написан
    7 комментариев
  • Маршрутизация codeigniter3?

    profesor08
    @profesor08
    Ответ написан
    Комментировать
  • Как передать ключ авторизации в get запросе?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    {header: headers}

    https://angular.io/guide/http#adding-headers
    headers: headers
    Ответ написан
    Комментировать
  • Оригинальное имя при загрузки файла?

    be_a_dancer
    @be_a_dancer
    Backend/Fullstack Developer
    Это корректное название файла, которое исключает дубликаты в рамках одной директории, чтобы содержимое файла не перезаписалось. При желании, можно прочитать документацию по laravel, где сказано, как следует работать с методами данного класса.

    Краткая выдержка
    By default, the store method will generate a unique ID to serve as the file name. The file's extension will be determined by examining the file's MIME type. The path to the file will be returned by the store method so you can store the path, including the generated file name, in your database.


    Если все же вы хотите сохранить файл с оригинальным именем, там ниже также есть решение. В метод storeAs можно передать второй параметр с именем файла.

    $path = $request->file('avatar')->storeAs(
        'avatars', $request->user()->id
    );
    Ответ написан