Задать вопрос
  • React/vue и cms?

    @mletov
    Погуглите Headless CMS.
    Очень многие популярные CMS имеют свою headless версию, т е есть админка и есть REST API, которая отдается на основе данных, занесенных в эту админку.

    Соответственно, морду вы можете писать на чем хотите: Angular, React, Vue и т д
    И даже вообще можете разместить ее на другом домене.

    Как вообще клиенты потом меняют содержимое сайта если нет cms, т.е есть только к примеру бэкенд на php, и фронт на реакте или вью?

    На том же реакте тоже можно написать админку и через нее обновлять данные.
    Ответ написан
    1 комментарий
  • Зачем задавать приватный модификатор доступа для свойств класса?

    Adamos
    @Adamos
    class VeryOpenOne
    {
    public $property;
    }
    $voo = new VeryOpenOne();
    $name = 'pro' . 'perty';
    $voo->$name = 'Пытаясь отрефакторить тот класс, ' .
      'ты хрен найдешь, что в этой строчке меняется эта переменная. ' .
      'Никакое самое умное IDE не поможет';
    Ответ написан
    1 комментарий
  • Как вернуть ошибку?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Есть 2 подхода
    Все ошибки кэтчить и отдавать 200 статус
    И обрабатывать модель в которой есть сообщение об ошибке и статус
    Второй смотреть статус ошибки и выводить ответ уже на клиенте
    Ответ написан
    Комментировать
  • Каким способом лучше всего менять html код?

    iiiBird
    @iiiBird Куратор тега HTML
    Пока ты спишь - твой конкурент совершенствуется
    в твоем случае можно спокойно обойтись только css. выставляешь в ряд все возможные элементы через flex. далее в зависимости от адаптивности нужные показываешь, не нужные display: none; а положение меняешь через order
    Ответ написан
  • Каким способом лучше всего менять html код?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    Если макет не слишком сложный, то можно обойтись и медиа запросами.

    Например вот так:



    Плюс минус немного JS для смены класса и прочее, но в основном всю работу выполняет CSS.
    Ответ написан
  • Стоит ли всегда использовать requestAnimationFrame, когда вношу изменения в дом?

    @ildar-meyker
    Проблемы в IT надо решать по мере поступления. Не нужно оптимизировать то, что не требует оптимизации.
    Ответ написан
    3 комментария
  • Как найти 3 одинаковых числа, идущих подряд в массиве js?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Задания запрещены правилами.
    Вариантов решений куча.
    Например, можно использовать счётчик совпадений. Надо хранить предыдущее значение и сравнивать его с текущим. Если они равны, то счётчик увеличить, иначе сбросить.
    Если счётчик равен 3, то выход true
    Ответ написан
    Комментировать
  • Как спроектировать базу данных с расписанием?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    --пользователь (userId, username, group, year)
    Уже лажа, так как группы у вас отдельные сущности, со своими свойствами, группы будут связаны с пользователями через пивот таблицу, так как наверняка будут пользователи, входящие в разные группы.
    --курсы (интовое значение)
    Курс - это сущность. Какое интовое значение?
    --группы (количество групп напрямую зависит от курса)
    Ваще до ручки сколько и что от чего зависит. Группы так же связанны таблицей отношений с курсами, как с юзерами. Отдельный пивот.
    --дата проведения занятия
    Собсно таблица расписаний дата/начало/конец/айди группы/айди предмета/кабинет.
    В зависимости от нюансов, которых я не знаю, таблицы могут быть с меньшим отношением, например не многие ко многим, а один ко многим, что немного меняет структуру, но в целом смысл останется примерно тот же.
    Ответ написан
    5 комментариев
  • Как сделать чтобы при hover 1-ый объект не погасал при наведении на второй?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    делай hover на ".menu > li", а не на "a"
    Ответ написан
    2 комментария
  • REST API - Метод DELETE Удалять ли обьект из базы или нет?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    А мы то знаем как вам нужно? Делайте как того требует логика приложения. Нужна возможность восстановить запись? Пишите флаг. Не нужно восстанавливать? Удаляйте.
    Ответ написан
    Комментировать
  • Как mysql/mariadb сортирует одинаковые значения?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В целом п.3
    Обеспечивать случайность - это затратная операция, её никто просто так делать не будет. Скорее всего, имелся ввиду неопределённый порядок, а не случайный. Который как раз и подходит под п.3

    Если сразу после добавления, то может в порядке вставки, но это не точно, поскольку запись может идти не линейно, а на место записей, помеченных, как удалённые. Плюс после удалений/обновлений физический порядок записей в файле тоже может меняться, и соответственно, порядок выдачи.
    В целом ответ - никак не сортирует, берет первую попавшуюся.
    Ответ написан
    Комментировать
  • Как вложить в тег li изображения и еще список и подзаголовок?

    MrDecoy
    @MrDecoy Куратор тега HTML
    Верставший фронтендер
    Тут всё зависит от контекста.
    Если эти 4 блока между собой связаны, то есть демонстрируют некоторое перечисление, и можно их представить в виде плоского списка\перечня элементов, то да, СЕМАНТИЧЕСКИ более правильно сделать это списком.
    Внутри li можно размещать практически какую угодно информацию.
    При этом, на деле очень много кому семантика не важна и сделать дивами - тоже ок. Зависит от требований продукта и степени клиентаориентированности.

    Соответственно, если эти 4 блока никак между собой не связаны, просто 4 слуайных элемента с разной информацией, о разном, никак не объединяются под какую то общую сущность, типа "меню" \ "сегодня в кино" \ "товары" \ "наши особенности" \ "контакты" и так далее - то можно и дивами.

    НО, мне утверждают что это неверно! Что надо эти 4 блока сделать как блок ul, в котором будут 4 элемента li

    Ну и когда Вам кто-то что-то утверждает, то спрашивайте аргументацию, ознакомьтесь с этой аргументацией и сделайте вывод. И только если Вы с ней не согласны, имеете свои контр аргументы, тогда можно пойти и задать вопрос на суд сообщества.
    Ответ написан
    1 комментарий
  • Как сделать чтобы при неправильном вводе пароля была ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    пишет-Сейчас эта страница не работает,
    смотрим логи, а лучше включаем вывод ошибок. После этого внимательно читаем ошибки и исправляем.

    $password = md5($password."ghjsfkld2345");
    забыть как страшный сон, читаем про password_hash(), делаем как надо.

    $result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$fullname' AND `pass` = '$password'");
    Читаем про подготовленные выражения, автору видео ставим дизлайк и больше всякое г не смотрим.

    setcookie('user', $user['fullname'], time() + 3600 * 24 * 90, "/");
    работать с куками вместо сессии - отдельный вид некомпетентности, точнее - открытое вредительство.

    $mysql->close();
    Абсолютно лишняя строка, драйвер сам закрывает соединение по завершении скрипта, делать это вручную нужно лишь в исключительных случаях, еще один пинок в карму...
    Ответ написан
    7 комментариев
  • Как правильно выстраивать архитектуру метода контроллера на laravel?

    iMedved2009
    @iMedved2009
    Не люблю людей
    1.public function destroy($id)
    Используйте model binding - удобно же.

    2. ProjectPolicy::requestDelete($id)
    есть прекрасный вариант расставлять policy на уровне роутера - can:
    Route::delete('/project/{project}', [Controller::class, 'method'])->can('delete', 'project');


    3. $project = Project::find($id);
    FindOrFail - в случае отсутствия модели выбросит ровно 404;

    4. $this->deleteImageProject($project->logo);
    Если вы всегда удаляете лого после удаления модели - то повесьте событие delete и всегда удаляйте лого как только где то и в каком то месте пытаются удалить модель Project. Для случаев mass delete - гляньте в трейт softDeletes, по аналогии можно навешать обработчик.
    Лень - через события? Ну переопределите у модели метод delete.
    public function delete()
    {
        $result = parent::delete();
        if($result){
            $this->deleteImageProject($this->logo);
        }
        return $result;
    }

    У вас логика удаления модели (если нам надо удалить модель - надо удалить лого) - не должна валяться по всему проекту - она должна лежать в одном месте. А судя повсему вы ее вообще в контроллер запихали - ни в какие ворота

    При использовании всего этого у вас метод контроллера приобретет простой и лаконичный вид.

    public function destroy(Project $project)
    {
        $project->delete();
        return response('', 204);
    }


    204 - ибо можем

    If a DELETE method is successfully applied, the origin server SHOULD
    send a 202 (Accepted) status code if the action will likely succeed
    but has not yet been enacted, a 204 (No Content) status code if the
    action has been enacted and no further information is to be supplied,
    or a 200 (OK) status code if the action has been enacted and the
    response message includes a representation describing the status.

    RFC
    Ответ написан
    7 комментариев
  • Почему в данном коде необходимо нижнее подчёркивание?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Подчёркивание в JS - допустимое имя переменной. Вы можете заменить его на любое другое неиспользуемое имя.
    Автор кода, скорее всего, хотел показать, что деструктурируемое значение в дальнейшем не используется.
    Ответ написан
    Комментировать
  • Почему в данном коде необходимо нижнее подчёркивание?

    Alexandre888
    @Alexandre888
    Javascript-разработчик
    в задании на входе вы получаете подобные массивы: ["3:5", "4:2", "8:7"]
    функция, передаваемая в .reduce(), имеет 2 обязательных параметра (accumulator, currentValue) и 2 необязательных (index, array).

    здесь .reduce((a, [x, _, y]) в качестве второго параметра (currentValue) выступает [x, _, y].

    если мы применим .reduce() к массиву, который я представил в самом начале ответа, в качестве currentValueбудут выступать следующие значения:
    • "3:5"
    • "4:2"
    • "8:7"

    далее, в действие вступает деструктурирующее присваивание, которое будет применено к каждому из элементов массива (по некоторым причинам оно работает и со строками).
    это можно интерпретировать как:
    // используется 1 элемент массива //
    let x, _, y;
    
    [x, _, y] = "3:5";
    /* x === "3", _ === ":", y === "5"  */
    
    // используется 2 элемент массива //
    let x, _, y;
    
    [x, _, y] = "4:2";
    /* x === "4", _ === ":", y === "2"  */
    
    // используется 3 элемент массива //
    let x, _, y;
    
    [x, _, y] = "8:7";
    /* x === "8", _ === ":", y === "7"  */

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

    вы можете заменить _ на любое другое валидное название переменной, чтобы убедиться, что оно не используется.
    или же, как в следующем примере, добавить запятую, чтобы проигнорировать это значение:
    let x, y;
    
    [x, ,y] = "5:3";
    /* x === "5", y === "3" */
    Ответ написан
    1 комментарий
  • Как найти совпадения по числам среди двух массивов php?

    Amega
    @Amega
    Senior PHP Developer
    Ну вообще array_intersect() как раз это и делает - возвращает пересечение массивов. И в данном случае он работает.

    <?php
    
    $massiv1 = ["1","13","47","48","60","67","3"];
    $massiv2 = ["3","1"];
    
    print_r(array_intersect($massiv1, $massiv2));

    Array
    (
        [0] => 1
        [6] => 3
    )

    Если смущают ключи в результирующем массиве (они соотв-ют дубликатам, но в первом указанном массиве), их можно убрать, дополнительно обернув результирующий массив в array_values()
    Ответ написан
    Комментировать
  • Как сверстать данную секцию?

    @123581321345589
    web-разработчик
    Думаю Вы сами решите, ответив на несколько вопросов:
    - нужен ли паралакс этих элементов?
    - будет ли меняться картинка внутри?
    - как это должно выглядеть на мобильных устройствах?
    - интересно ли Вам реализовать это стилями?
    - заплатят ди Вам за эту заморочку?
    Ответ написан
    Комментировать
  • Почему при указании в :nth-of-type числа не работает, но указание 2n работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что в nth-of-type указывается номер потомка относительно родителя.
    Ваш селектор .two div[id]~div:nth-of-type(2) читается как:
    1. Найти элемент с классом .two
    2. Внутри этого элемента найти div, имеющий атрибут id.
    3. Среди следующих за этим div'ом сиблингов найти div, являющийся вторым потомком своего родителя.
    Но такого div'а нет, поскольку div[id] сам является вторым потомком, а следующие за ним сиблинги - третий, четвёртый и т.д. потомки.
    2n работает потому, что оно берёт четвёртого и шестого потомков, второй также не подходит под селектор.
    Ответ написан
    Комментировать