• Зачем для кеширования использовать Redis, если можно сделать файловое кеширование?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вы очень узко понимаете понятие кэширования.
    И забываете о том, что из кэша не только читают, но в него еще и пишут.
    в .php файлах эффективнее хранить не кэш, а какую-то статичную информацию, которая редко изменяется (скажем, только при деплое), и при этом общую для всех пользователей. При соблюдении этих условий кэширование в .php файлах вполне себе используется.

    Но понятие кэша гораздо шире. Кэшироваться может и специфичная для конкретного пользователя или запроса информация. В этом случае никаких .php файлов не напасешься.

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

    Еще одна причина, не главная, но все равно важная - масштабирование. Один сервис редиса можно использовать с несколькими инстансами РНР. Плюс сам редис можно масштабировать на несколько физических инстансов.
    Ответ написан
    Комментировать
  • Используется ли шаблонизатор в проде?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    И так и так.
    Чаще всего используется традиционный рендеринг на бэке, но если кто хочет помоднявее, или чтобы не тратиться на отдельные версии для мобильного приложения, то делают рендеринг на фронте.

    Как пользователь, я ненавижу рендеринг на фронте, на практике он ВСЕГДА тормозит.
    За примером далеко ходить не надо, это новый дизайн Хабра.

    Вы, кстати, неправильно понимаете термин "прод".
    Продакшен окружение относится не к коду, а к тому, где он выполняется
    В локальном окружении разработчик пишет и отлаживает программу
    Тестовое (стейдж) окружение полностью имитирует боевой сервер, но доступно только разрабочикам/тестировщикам/заказчикам
    И, наконец, продакшен - собственно рабочий сервер, который находится под реальной нагрузкой
    А код везде один и тот же.
    Ответ написан
    3 комментария
  • Чей ip адрес адрес будет приходить?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Конечно IP-адрес удалённого сервера, с которого создалось соединение. Посетитель удалённого сервера к такому соединению имеет отношение только в том, что соединение создаётся для получения данных для этого посетителя.
    Ответ написан
    Комментировать
  • Как превратить текст в исполняемый код?

    Stalker_RED
    @Stalker_RED
    Если это задание с курсов, то скорее всего они хотели вас научить использовать eval().

    Но стоит отметить, что использование eval() очень часто приводит к образованию дыры в безопасности, т.к. если пользователь впишет вместо A = 1 какю-нибудь строчку повеселее, типа A = 1; exec(rm -rf /)*, то можно огрести проблем.

    * - код намеренно неработающий.
    Ответ написан
    1 комментарий
  • Как сделать уведомление о завершении работы скрипта?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Этот вопрос не имеет отношения к РНР.
    А только к базовым навыкам работы с операционной системой.
    В простейшем случае можно написать бат файл, в котором под своей командой пишете любую другую, от проигрывания звукового файла до запуска любой программы. Которая выполнится по завершении первой
    Можно то же самое написать в одну строчку php my.php & echo ^G
    После амперсанда опять же, пишется все что угодно.

    писать set_time_limit(0) в консольоных скриптах кстати не нужно. Там лимита нет по умолчанию
    Ответ написан
    Комментировать
  • Как почистить кеш редиректов у пользователей сайта?

    YBB
    @YBB
    Боюсь, что никак не очистить. Тут свой браузер порой чуть ли не ногами бить приходится, чтобы забыл об уже неактуальном редиректе.
    Попробуйте использовать не 301 (постоянный), а 302 (временный) редирект — он не должен вообще кэшироваться. В теории.
    Ответ написан
    1 комментарий
  • Почему PHP не исполняется построчно, хотя он интерпретируемый?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Изначально интерпретируемые языки преобразовывались в машинный код построчно, то есть каждая логическая строка компилировалась непосредственно перед выполнением. В результате каждая инструкция, заключенная в тело цикла и исполняемая несколько раз, столько же раз обрабатывалась транслятором. В настоящее время такие эффекты редки. Большинство интерпретируемых языков предварительно транслируются в промежуточное представление. Оно представляет собой байт-код. Это набор инструкций по вызову небольших фрагментов более низкоуровневого кода, эквивалентный нескольким командам ассемблера или командам виртуальной машины соответственно. Уже этот код исполняется интерпретатором или виртуальной машиной.
    Ответ написан
    5 комментариев
  • Как поправить функцию, чтобы она работала после обработки Webpack?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Не навешивать обработчики из html.
    https://developer.mozilla.org/en-US/docs/Web/API/E...
    Ответ написан
    Комментировать
  • Как добавить возможность скачивания выгрузки из БД на сайт?

    Stalker_RED
    @Stalker_RED
    Если устроит csv вмето xlsx, то достаточно select ... into outfile 'filename.csv'
    И отдать потом файл.
    Ответ написан
    Комментировать
  • Как правильно сделать добавление страниц на сайте?

    Stalker_RED
    @Stalker_RED
    Ох, какие секретные все, "картинки с описаниями", туману побольше напустить. Да напиши уже - продаем сковородки, или кошачий корм. Меньше усилий на напускание туману и больше на техническую проблему.

    Я могу ошибаться, но из вашего туманного описания складывается впечателение, что вы сперва сверстали "списки картинок", потом понаделали под них отдельных страниц с подробностями, а теперь раздумываете не стоит ли выбросить это все, и переписать нормально, чтобы товары хранились в базе данных, и можно было и вывести списки этих товаров (ваши основные страницы) и страница с "описанимями" создавалась автоматически. Перешел юзер на страничку "example.com/item/123" и видит там товар с номером 123, его описание, форму заказа, и вот это все.
    Кажется, мы тут изобрели интернет-магазин.

    Хорошая новость: человечество их уже изобретало, и сейчас можно взять готовый движок магазина, в том числе бесплатно. В том числе, в виде плагина для вордпресса.
    Ответ написан
    4 комментария
  • Как правильно соединить при выдаче 2-3+ разных таблиц с одинаковой структурой в единую выборку?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Сделать вместо этого зоопарка ОДНУ таблицу.
    Ответ написан
    2 комментария
  • Программирования учат или применяют?

    Stalker_RED
    @Stalker_RED
    Ужасная новость, шок, сенсация: HTML и CSS - вообще не языки программирования.
    И да, я первые свои странички сделал прочитав одну статью из журнала (2 стр. текста с иллюстрациями), так что готовиться пару лет чтобы написать первую строчку кода - не обязательно.

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

    С js, c++ и другими языками программирования все немножко сложнее. Там надо больше думать головой, продумывать структуру программы, алгоритмы, вот это все. Конечно, "hello world" можно и с мизерной подготовкой написать, но вскоре обнаружите что база очень нужна, и нужна хорошая.
    Ответ написан
    6 комментариев
  • Программирования учат или применяют?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Ну серьезно. Зачем вы ходили в школу?
    Неужели в школе не было некоторого количества предметов, чтобы понять как что учится?

    Получилось ли выучить иностранный язык, просто зазубрив слова? Или выяснилось что и слова надо запомнить и практиковаться много раз, чтобы как-то начало получаться?

    Алгебру - достаточно ли просто зазубрить что такое + - * / %, чтобы решать все задачи, или приходится на практике решать кучу задач, чтобы научиться это делать быстро?

    Программирование НИЧЕМ не отливается от любых других направлений. Нужно и зубрить теорию и заниматься практикой, нельзя делать что-то одно. И высчитывать процент - это зачем? каждый человек немного уникален, у каждого процент будет свой.
    Ответ написан
  • Почему SQL запрос неправильный?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT good,                      -- выбрать идентификатор товара
           amount * unit_price AS `sum` -- и потраченную на него сумму
    FROM Payments 
    ORDER BY `sum` DESC;                -- отсортировать по убыванию суммы
    Ответ написан
    Комментировать
  • Как быть с несколькими формами на ajax?

    Stalker_RED
    @Stalker_RED
    Поменять id.
    If the id value is not the empty string, it must be unique in a document.

    https://developer.mozilla.org/en-US/docs/Web/API/E...
    Ответ написан
    4 комментария
  • Как найти в массиве JSON в mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Вы показали невалидный JSON
    2. Правильный путь $.Statuses[*].id
    3. JSON_SEARCH ищет только строки, а у вас число
    4. Раз вам надо искать в JSON, значит вы что-то делаете неправильно.
    Ответ написан
    1 комментарий
  • Какие сейчас тенденции в веб-программировании?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    С тем же успехом можно было спросить "Какие сейчас тенденции в программировании?" Web-разработка - это настолько обширная область, что общие тенденции в ней вряд ли возможны. Если брать относительно узкую категорию "Клепание однообразных говносайтов для ИПшников" то да, агрессивный маркетинг 1С всё ещё держит битрикс на плаву.
    Ответ написан
    2 комментария
  • Нормально ли создавать функции внутри функций?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    В принципе можно.
    Но может тогда лучше класс создать с необходимыми методами?

    class fun1 {
      constructor(){
        // код...
        this.#fun2();
      }
      #fun2() {
        // код...
        this.#fun3();
      }
      #fun3() {
        // код...
        // вызов какой-то из вложенных функций
      }
      #fun4() {
        // код...
        // вызов какой-то из вложенных функций
      }
    }
    
    const f1 = new fun1();
    Ответ написан
    Комментировать
  • Как внести в бд данные из формы?

    Stalker_RED
    @Stalker_RED
    Использовать action можно, можете хоть сотню форм на одной странице иметь, это не мешает никак.
    POST предпочтительнее для форм, чем GET, некоторые типы данных вообще не получится отправить через GET.
    пока не нашел, как их обрабатывать на стороне php
    это шедевр. Вы могли бы написать эту фразу просто в гугл, без "пока не нашёл", и сразу найти
    https://www.php.net/manual/ru/reserved.variables.p...
    Ответ написан
    Комментировать
  • Каким способом лучше сделать изменение огромного текстового контента через админку?

    @mletov
    Собственно, так и делают.
    Только вордообразный wysiwyg редактор прикручивают (CKEditor, TinyMCE и т д)
    Ответ написан
    Комментировать