• Что тут задача фронтенда, а что бэкэнда?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Да. Минимальная задача верстальщика сверстать этот блок. Более опытный (и если есть такая необходимость) может еще сделать js-слайдер.

    Теоретически функционал Недавно просмотренные можно реализовать полностью на фронтенде (список просмотренных: названия, цена, картинка хранит в локалстордже), но тогда этого разработчика я не стал бы называться простым верстальщиком. Это уже фронтенд-разработчик/программист/инженер. Да и есть у этого ограничения. Например если цена на товар поменялась, то в браузере клиента будет старая. Или если товар снят с продажи, то он все равно его увидит. Ну и надо понимать, что это совершенно разный объем работ.

    В классическом случае этот функционал + интеграцию верстки в шаблон делает бекенд-разработчик.
    Ответ написан
    3 комментария
  • Не получается сделать чтобы форма регистрации передавала данные в БД, как правильно это сделать и что заменить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Код с какого-то древнего ресурса, который надо закрыть за порнографию...
    2) Совать в базу непроверенные строки (логин, например) крайне не желательно, так же, неплохо бы проверить что поле емэйла содержит что-то напоминающее емэйл.
    3) Неплохой практикой считается проверить пришло ли что-нибудь вообще в запросе, например через var_dump($_POST);
    4) Про подготовленные выражения уже пальцы устали писать каждый раз, используйте их!
    5) $password = md5('kakdj834'); хэшировать черте-что после добавления в бд пароля в открытом виде - особый вид искусства...
    6) нужно видеть ошибки, соответственно при подключении вызвать
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    , исполнение оборачивать в трай-кетч, если уж ловите руками...

    Короче, все плохо, сжечь...
    Ответ написан
    Комментировать
  • Как сделать ежесекундную обработку действий?

    Stalker_RED
    @Stalker_RED
    Другие технологии, их есть у нас. Называется - просто не делай этого вообще.
    Игрок получил повреждения - записываешь в базу, и все, ничего не регенерируешь.
    Когда произойдет какое-то новое взаимодействие с игроком - получил новый урон, обновил страницу, или какая там у вас игровая логика, тогда уже, при помощи формулы "прошедшее_время * скорость_регена = сколько_здоровья_оргененило".
    С баффами все немножко сложнее, но смысл тот-же - считайте формулой, и в тот момент когда данные нужны, а не в фоновом процессе неведомо зачем.
    Ответ написан
    7 комментариев
  • Кто работал с kalnoy/nestedset в laravel? Почему она неправильно работает?

    @vism
    Он верно работает.

    Не верно работает программист.

    Может этот программист не знает, что такое nestedset ?
    Ответ написан
    Комментировать
  • В чем ошибка моего кода?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самое время познакомиться с темной стороной программирования.
    Начинающие вайтишники искренне думают, что программист - это типа такой художник. Берет мольберт, поллитру, кисти и начинает ВАЯТЬ. Потом отходит на шаг, любуется делом рук своих, и снова. Ваять. А потом сразу заказчику, за большие деньги.

    Так вот, в реальности это всё не так.
    Большую часть времени программист не пишет код.
    А пытается разобраться, почему он не работает.

    Так что мы будем сейчас учиться это делать.
    Тем более, что это в принципе несложно.
    Главное не думать, что чем-то поможет сидеть и тупить в свой кодик. И приглашать других людей потупить в него тоже бессмысленно. Потому что причина может быть совсем не в нем. но даже если проблема и в коде, то искать её всё равно надо по-другому.
    В код не надо тупить. Его надо ЗАПУСКАТЬ.
    И выводить промежуточные результаты. Проверять его работу.
    Заранее выяснить, какие должны быть значения у переменных, и проверять их на каждом этапе.
    Где не совпадут - там и проблема.
    В идеале IDE сама покажет содержание всех переменных при трассировке, но если пишешь код в блокнотике, то даже тупо писать var_dump($bar1,$var2,$var3...); и смотреть что там лежит.
    Условия проверять еще проще, тупо echo 'зашли в условие if (!empty($user))';
    И если лежит не то, или эхо не выводится - вот тогда уже смотреть в код и думать, почему так получилось.

    В частности, при авторизации надо проверить две вещи:
    1. Находится ли юзер по логину
    2. если находится, то проверить корректность хэша. Для этого при регистрации надо вывести полученный через password_hash пароль и записать на бумажке
    потом запросить сохраненный из БД и сравнить

    Кроме того
    Разумеется, отладка невозможна без сообщений об ошибках.
    В половине случаев РНР человеческим голосом сообщает в чем проблема.
    Поэтому всегда, в любом окружении должно стоять error_reporting(E_ALL);
    плюс на домашнем компике полезно прописать ini_set('display_errors', 1); чтобы сразу видеть ошибки на экране.
    На боевом сервере разумеется поставить 0 вместо 1, и добавить ini_set('log_errors', 1);

    У меня только один вопрос.
    Какой смысл вообще делать парольную защиту, если любой придурок сможет спокойно авторизоваться через SQL инъекцию?
    Ответ написан
    9 комментариев
  • Где в Laravel лучше делать валидацию входящих данных - в контроллере или сделать кастомный Request для контроллера, или Middleware?

    @jazzus
    Валидация это обычно что? Простыня) Поэтому свой Form Request. Написать php artisan make:request и потом импортировать в ide это буквально секунды времени. Зато в этом классе ты можешь кучу всего делать. Например prepareForValidation, сообщения, логику со своими правилами и все это будет в одном месте. Запихивать валидацию в middleware или в свои классы в Ларавел - это извращение.
    Ответ написан
    Комментировать
  • Какой способ подсчета строк быстрее и тратит меньше ресурсов SQL или PHP?

    @FernandoErrNando
    В таких случаях всегда такие вычисления перекладывают на БД, за 1 запрос ты получаешь ответ и возвращаешь его в качестве результата.
    В случае, если ты попытаешься получить записи для подсчета в PHP, то на больших выборках велика вероятность получить слишком большой массив данных, который не поместится в память, отведенную под PHP, не говоря уже о времени перебора данных.
    Ответ написан
    Комментировать
  • Какое окружение вы используете для разработки php?

    DevMan
    @DevMan
    phpstorm для основной разработки, любой редактор под руками (vsc, atom, sublime, nano, vim...) для посмотреть/быстрых маленьких правок.

    сервер: все (за редким исключением) ставлю из пакетов, затем допиливаю ручками.

    phpmyadmin/аналоги–для–других–баз последний раз видел году в 2010. с тех пор использую либо консоль, либо гуевые тулзы (для удаленного доступа через ssh/http–тунель).

    докеры, вагранты, "идентичное проду окружение", "сборки – гавно" – это все типичный булшит и базвордс.
    иногда перечисленное реально нужно и полезно (сам пользую где надо), но далеко не всегда/везде и не всем.

    разрабатываете в одиночку – вообще пофигу на чем, лишь бы вас устраивало и было вам удобно.
    разрабатываете в команде – пока ваш код запускается у других участников (что не проблема, если понимать что делаешь/особенности языка под разные платформы/следование принятым соглашениям), всем плевать на чем вы его у себя крутите. хоть стоя в лыжах в гамаке и на утюге.
    Ответ написан
    12 комментариев
  • Почему принято писать пробелы вместо табов?

    DevMan
    @DevMan
    4 пробела – везде и всегда равны 4 пробелам, а размер таб'а плавает.
    при неумелом обращении, особенно при командной разработке, это может привести к неожиданному виду кода.

    дело личных привычек/предпочтений и/или договоренности.
    в умелых руках проблемы "space vs tab" вообще не существует.
    Ответ написан
    Комментировать
  • Как изменить одномерный массив на многомерный?

    Seasle
    @Seasle Куратор тега JavaScript
    const array = [
      [
        { name: 'A', age: 10 },
        { name: 'B', age: 10 },
        { name: 'A', age: 10 },
        { name: 'B', age: 10 },
      ],
      [
        { name: 'C', age: 10 },
        { name: 'D', age: 10 },
        { name: 'C', age: 10 },
        { name: 'D', age: 10 },
      ],
    ];
    
    const groupBy = (collection, extractKey) => {
      const cache = new Map();
      
      return collection.reduce((accumulator, entry) => {
        const key = extractKey(entry);
        if (!cache.has(key)) {
          const group = [];
    
          cache.set(key, group);
          accumulator.push(group);
        }
        cache.get(key).push(entry);
    
        return accumulator;
      }, []);
    };
    
    const newArray = array.map(entry => groupBy(entry, item => item.name));
    
    console.log(newArray);
    /*
    [
      [
        [ { name: 'A', age: 10 }, { name: 'A', age: 10 } ],
        [ { name: 'B', age: 10 }, { name: 'B', age: 10 } ]
      ],
      [
        [ { name: 'C', age: 10 }, { name: 'C', age: 10 } ],
        [ { name: 'D', age: 10 }, { name: 'D', age: 10 } ]
      ]
    ]
    */

    Также провел тесты, нашел самый шустрый вариант.
    const groupBy = (collection, extractKey) => {
      const cache = new Map();
      
      for (const entry of collection) {
        const key = extractKey(entry);
        if (!cache.has(key)) {
          cache.set(key, []);
        }
        cache.get(key).push(entry);
      }
      
      return [...cache.values()];
    };
    Ответ написан
    2 комментария
  • IT с нуля? или кардинальное изменение?

    @Qualiant
    Вам лучше вообще не входить в IT. Один из ценнейших навыков программиста - самостоятельный поиск информации. Те, кто хотят научиться программировать - садятся и учатся сами. Находят туториалы, читают их, учатся. Методом проб и ошибок учатся отличать плохое от хорошего и т.д.
    Ответ написан
    4 комментария
  • Скрипт на js переписать на php?

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    get("/categories/category/destroy/{category}"
    href="/categories/category/delete/{{$category->id}}"
    Да ну ёпрст же… Попробуйте себя в авиамоделировании.
    Ответ написан
    Комментировать
  • Есть ли сайты на которых можно сделать 3д игру?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Заходишь на сайт, делаешь игру и не надо учить никаких языков программирования и прочую технологию.
    Например тут:
    https://www.gamemaker3d.com/editor/

    Программисты скоро будут не нужны, просто сайт сам себя еще немного улучшит, добавятся новые фичи, эльфы там лесные, можно будет грабить корованы.
    И все будут делать игры на сайтах.
    Ответ написан
    3 комментария
  • Для чего нужна конструкция в шаблонах {{ __(text) }}?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Ты не представляешь, как много можно узнать, если начать читать документацию.
    Ответ написан
    1 комментарий
  • Как решить конфликты в трейтах?

    proudmore
    @proudmore
    За несколько лет опыта коммерческой разработки никогда не встречал такой ситуации. Необходимость подключения нескольких трейтов с одинаковыми названиями методов сигнализирует о серьезных проблемах с разделением ответственностей вашего кода. Если проще то вам нужно решать не проблему одинаковых названий методов, а проблему такой необходимости в принципе
    Ответ написан
    2 комментария
  • Сколько строк нормально для класса?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Столько, сколько необходимо для кодирования логики поведения объектов этого класса.
    А заложенная логика в этот класс - это вопрос архитектуры проекта (не кода проекта!).
    Ответ написан
    Комментировать
  • Какой класс вместо corsar использовать?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    а сейчас не могу понять как это сделать?

    Может быть потому что он всегда был Carbon?

    А еще есть просто now()

    В крайнем случае есть в php DateTime ну и всё такое.
    Ответ написан
    Комментировать
  • Возможно ли переопределить статический метод?

    php666
    @php666
    PHP-макака
    если возникают такие вопросы, то это лишь признак очень плохой архитектуры кода
    в современном пхп ооп реализовано на достаточном уровне, что бы писать красивый и понятный код
    Ответ написан
    Комментировать