• Как преподавать алгоритмы и структуры данных слепому?

    hint000
    @hint000
    у админа три руки
    Каждый элемент схемы можно подписать координатами, например буква+цифра, как на шахматной доске. Тогда можно словами описывать, что на b2 условие i>0, истина - идём на a3, ложь - идем на c3, на a3 i=i-1, и т.д. Думаю, научиться в воображении так строить блок-схему будет стоить героических усилий. Сопоставимо с игрой в шахматы по памяти без доски.
    Удачи.
    Ответ написан
    1 комментарий
  • Создание, редактирование, удаление поста на VueJS?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    4 комментария
  • Как пропустить итерацию если команда вызывает ошибку PHP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Плохо, плохо... Почему у вас в программировании всё так плохо?!

    ПРАВИЛЬНЫЙ вариант вашего кода:
    $sql_array = array();
    foreach($product['oc_product_description'] as $k => $v){
            $sql_array[] = "{$k} = ?";
    }
    $this->db->prepare("INSERT INTO oc_product_description SET ".implode(", ", $sql_array))->execute(array_values($product['oc_product_description']));
    unset($sql_array);


    Но если у вас действительно ЕСТЬ необходимость создавать столько записей (напрягитесь, осознайте далее написанное), сколько всего ПОЛЕЙ (ну типа там id,type,num,cost,category_id,sklad,etc) в таблице - тогда приведённый выше код нужно поменять. Но я сильно сомневаюсь, что вам нужна толпа записей вида:
    id=100
    id=100, type=tovar
    id=100, type=tovar, num=10
    id=100, type=tovar, num=10, cost=26.4
    id=100, type=tovar, num=10, cost=26.4, category_id=4
    id=100, type=tovar, num=10, cost=26.4, category_id=4, sklad=true
    id=100, type=tovar, num=10, cost=26.4, category_id=4, sklad=true, etc=...

    А именно так ваш код заполняет таблицу, дополняя запрос поле за полем, размножая записи как тараканов.

    Вердикт: Вы хоть вдумываетесь, что вы творите?!
    Ответ написан
    4 комментария
  • Как пропустить итерацию если команда вызывает ошибку PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Объясняем для самых маленьких: В коде НЕ ДОЛЖНО быть ошибок синтаксиса.
    Ошибки синтаксиса надо не "пропускать", а не допускать.

    В данном случае ошибка возникает из-за абсолютно дебильного кода, который пытается выполнить недописанный запрос столько раз, сколько полей в таблице.
    А в исправленном коде - из-за того что переменные пихаются напрямую в запрос.

    Поскольку ты пока еще вообще не понимаешь, как работать с БД из пхп, то никакой динамической сборки запроса. Только руками:
    $sql = "INSERT INTO oc_product_description SET field1 = ?, field2=?, ...";
    $stmt = $this->db->prepare($sql);
    $stmt->execute(array_values($product['oc_product_description']));


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

    ): - значит грусть (grust').
    ?array - значит, что может вернется массив (array), а может и не вернется совсем, но в предпочтении все же чтобы вернулся.
    В итоге имеем: грустный php не знает, что именно вернуть, и ему от этого грустно :(
    Ответ написан
    Комментировать
  • Как и когда правильно использовать actions Vuex для API-запросов?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    запросы к API надо делать внутри actions Vuex (якобы это best practices). Однако, я совершенно не понимаю, всегда ли это необходимо


    state нужен в тех случаях, когда доступ к списку пользователей вам нужен не в одном компоненте, а как минимум в двух. В таких случаях без него никак.

    Если вы уверены, что список пользователей вам нужен только в одном компоненте — тогда все данные нужно хранить именно в нем.

    Важно понимать разницу:
    • Данные в Vuex "существуют" всегда и всегда занимают часть памяти на клиенте.
    • Данные в компоненте "существуют" только когда существует компонент. И будут удалены если удалится компонент.


    Если ваше приложение завязано на списке пользователей, и несколько компонентов используют эти данные, то без Vuex вам будет сложно.

    В то же время, если список пользователей вам нужен только для какого-то виджета, который отображается не всегда — тогда хранить данные в Vuex не стоит.

    См. также

    Подскажите, что делать дальше, после того как запрос ушел на сервер и мы получили ответ, что пользователь добавлен?

    Это вопрос уже совершенно другого направления.

    Создать и вызвать мутацию addUser для добавления нового пользователя в state?

    Да. Actions для того и существует, чтобы вы могли выполнить какие-то асинхронные запросы, доп проверки, валидацию данных, определить нужно ли что-то сохранить в state и если нужно — что именно. Здесь вы можете добавить пользователя, проверить добавился ли он, выполнить дополнительный запрос на извлечение информации о нем. И тп.
    А мутация — непосредственно алгоритм изменения состояния.

    в чем тогда смысл нашего state?

    Локальная, быстрая, реактивная копия данных с сервера на клиенте.

    при любом действии все равно необходимо загружать данные с сервера

    Это уже вопрос к серверу. И к его API. Есть много разных технологий синхронизации данных между сервером и клиентом.

    На самом деле я не вижу ничего плохого в том, чтобы после добавления нового пользователя выполнить обращение и загрузить новый актуальный список.
    Ответ написан
    Комментировать
  • С чего начать при подключении api стороннего ресурса?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Строки "вставлять" в функцию file_get_contents().
    Полученный результат "вставлять" в функцию json_decode().

    Но самое сложное конечно - это достать информацию из полученного в итоге массива. Судя по тысячам вопросов на тостере, самое сложное для похапе пользователя - это достать данные из многомерного массива, структуру которого он наглядно видит.
    Ответ написан
    6 комментариев
  • Оцените стек для разработки сайтов. Возможно чем-то дополнить?

    zabudkin
    @zabudkin
    Инженер-системотехник, программист, админ, ТПУ!!!!
    - JavaScript (TypeScript)
    - PHP (Laravel)
    - CSS (SASS)
    - При необходимости шаблонизаторы (Twig, Blade)

    Идеально!
    А дальше уже пляши, тот же UI, если чего не хватит. Ты уже видно что не чайник, надеюсь хоть стал самоваром (сам зарабатываешь)? Ну а дальше от кипятильника и выше!
    Ответ написан
  • Как структурировать Laravel приложение?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Как хотите. Главная проблема - заблуждение о том, что laravel дает готовую структуру которой надо свято следовать - а все как раз наоборот. Он из коробки дает возможность строить структуру так, как вам хочется, без каких либо последствий.

    Я всегда сразу же разбиваю приложение на модули (домены) и там отталкиваюсь от нужной мне структуры.

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

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Гугли: "cms коллективные блоги" и найди через 2 минуты cms livestrett, потрать месяц на настройку и тысячи нефти на раскрутку, пойми что в 2020 это уже не стреляет, спейся и опустись на самое дно, напиши пост-исповедь на хабр.

    Как-то так.
    Ответ написан
  • Laravel, как использовать класс DB в моделе?

    @Kostik_1993
    Web Developer
    Что это вообще за говно? Для какого хрена тебе нужна модель Hello?
    Почему нельзя просто получить пользователя из его модели?
    public function show($id){
      $userObj = User::find($id);
      $userName = $userObj->name;
      return view('hello', compact('userName'));
      }
    Ответ написан
  • Почему json выводится таким образом?

    0xD34F
    @0xD34F Куратор тега Vue.js
    выводит побуквенно

    Тот факт, что вы ожидали иного, ясно говорит следующее: вы не знаете, что такое json. Не понимаете, что это строка. Что сам json и объекты, получаемые при его парсинге - не одно и то же.

    Строки v-for так и перебирает - "побуквенно". То есть, значениями user являются строки единичной длины. Ну а свойств id, name, price и т.д. у строк нет, отсюда пустота там, где вы выводите свойства элементов users.
    Ответ написан
    Комментировать
  • IDE с Искусственным интеллектом улучшающим код программы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    А зачем собсна тогда нужен будешь ты?

    Если AI может предложить более оптимальный алгоритм, то он уже должен понимать, какая должна быть конечная цель. Т.е. он знает что нужно сделать, как нужно сделать. Для чего нужен тогда ты сам? Запустить IDE?
    Ответ написан
    6 комментариев
  • У кого лучше учить Laravel?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Нет ничего лучше официальной документации.

    Любые курсы - это зря потраченные деньги и время.

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

    tsarevfs
    @tsarevfs
    C++ developer
    Можете называть себя так как вам нравится, хоть боевым вертолетом.
    Использовать готовые куски абсолютно нормально. Качество специалиста определяется результатом а не методами. Другой вопрос, что бездумное копирование рано или поздно приведет либо к лицензионным проблемам либо к интеграционным, когда куски не собираются в единое целое.
    Писать все самому с нуля это велосипедостроение. Но понимание того как работают эти части помогает собирать из кусков сложные системы и бороться с возникающими проблемами.
    Ответ написан
    Комментировать
  • Как оптимально реализовать фронт на Vue и бэк на Yii (желательно без CORS)?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    OPTIONS не содержит практически никакой логики на бекенде, разве что авторизацию проверить, чего у вас так от него бомбит? Итого выполняется <50ms, ну дальше уже от интернета зависит.
    "Чинится" двумя заголовками и больше не беспокоит.
    Весь бекенд уже давно понимает OPTIONS.

    Сейчас хочется сделать "как положено", разделить мух (Yii) и котлеты (Vue).

    И бомбить от корса, а всего лишь нужно было узнать что это работает только между разными доменами, так почему бы просто не поднять бекенд и фронт на одном домене?
    Ответ написан
    3 комментария
  • Как максимально обезопасить сайт на html(включая защиту от wget скачивания)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не выкладывать его в Интернет.
    Ответ написан
    Комментировать
  • Как скрыть экземпляр vue.js из консоли devtools?

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

    У вас на фронте секретные разработки? Тогда их надо было не на фронте реализовывать.

    Всё что есть на фронте доступно в консоли браузера так или иначе.
    Ответ написан
    Комментировать
  • Как использовать $this там, где он undefined?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Использовать стрелочные функции
    methods: {
        login() {
            this.$auth.login({
                params: {
                    email: this.email,
                    password: this.password
                },
                success: () => {
                    // handle redirection
                    const redirectTo = this.$auth.redirect()
                        ? this.$auth.redirect().from.name
                        : this.$auth.user().role === 2
                            ? 'admin.dashboard'
                            : 'dashboard'
                    this.$router.push({name: redirectTo})
                },
                error: error => {
                    this.has_error = true
                    this.errors = error.response.data.errors || {}
                    this.error = error.response.data.error
                },
                rememberMe: this.remember_me,
                fetchUser: true
            })
        },
        ........
    }
    Ответ написан
    Комментировать
  • Как защитить php сессию?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Последнее, что надо защищать, это сессия.
    Донесите уже это до всех криворучек, клепающих дырявые плагины для вордпресс, модули-решето для джумла, компоненты-костыли для битрикса.
    Ответ написан
    Комментировать