Задать вопрос
  • Google PageSpeed не видит мой скрипт замены картинок на webp. Что делать?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Вот мой скрипт, который берёт все тэги img и image из html и меняет им источник картинки на картинку webp, если браузер поддерживает.
    Откройте для себя тег picture! И да - iBird Rose абсолютно прав, вы только хуже наколхозили.
    Ответ написан
    1 комментарий
  • Почему в Symfony зарплаты выше, чем в Laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    По личным ощущениям, лара как раз разрабатывалась для джун+ уровня. То есть она сложно организована внутри и просто пишется поверх уже готовых компонент, собственно все сводится к подбору компонент или небольшому допиливанию чего-то готового искаропки. Этакий вордпресс в мире движков.

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    gemius например.
    Ответ написан
    Комментировать
  • Как исправить ошибку MySQL "Fatal error...?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Когда ты НЕ ЗНАЕШЬ что происходит у тебя в коде, во первых надо понять что и зачем ты пишешь, иначе это обезьянье тыканье в клавиатуру ни к чему не приведет в обозримом будущем. Прогресса не будет.
    Во первых - запросы выделить отдельно в переменные.
    Во вторых - вместо тупого "вставляния" переменных в запрос использовать плейсхолдеры, иначе будете страдать, и за дело. Разве так сложно все нужные параметры записать в массив ключ-значение и передать в запрос???
    В третьих - читать ошибки, понимать синтаксис. В идеале - нормально расписывать запрос в коде. Хотя я рекомендую всегда его писать в принятом построчном формате, это всегда удобно и наглядно:
    $sql = "
    INSERT INTO `cards` 
    (`name`, `title`, `p`, `tel`,`email`, `money`, `subject`) 
    VALUES 
    (:name,  :title,  :p,  :tel,  :email,   :money,  :subject";
    Надеюсь ошибка видна?
    Ответ написан
    Комментировать
  • Как делается мульти поиск по языкам?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если коротко - то никак. Нечеткий поиск и тем более по транслитерированным словам может дать что угодно кроме релевантной выдачи. Как вариант - ищите "алгоритмы нечеткого поиска", но они все:
    а) Достаточно сложные или требуют специфического софта
    б) Прожорливые как гремлины
    Ответ написан
    2 комментария
  • Как правильно исопльзовать exception в api и нужно ли вообще?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не совсем понятен вопрос: Вы свое пишете или с чужим разобраться не можете?
    В любом случае - выброшенное исключение по хорошему не должно вывалиться клиенту as is, то есть если вы его обработали - отдайте в формате в котором вы с клиентом обмениваетесь всем остальным - жсон, эксемель, йамл, прочие извращения... Странно разделять эксепшн/не эксепшн в рамках взаимодействия клиента и сервера. Клиент должен получить ответ, в формате принятом апи для обмена. В результате чего получился этот ответ на сервере вообще не должно волновать никого кроме программиста. Можете вообще эксепшены не использовать и пилить какие-то кастомные костыли вместо них. Это просто удобный инструмент обработки нетипичных ситуаций, обычно связанных с системным уровнем или со взаимодействием с сервисами системы (бд,кэш етц.)
    Ответ написан
    7 комментариев
  • Создание уникальной, динамической страницы посредством PHP. Как реализовать?

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    отслеживать текст инпут на ончейнж, или на кейап, ну и по событию выполнять ваш FindOnPage
    Ответ написан
    3 комментария
  • Помощь с POST запросом php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) тупо линк - нажмите сюда чтобы оплатить
    2) яваскрипт, который аяксом отправляет данные на сервер, ваш сервер выполняет приведенный выше код и обратно отдает урл куда переходить, ну и дальше локэйшн.хреф или виндоу.опен.
    Ответ написан
    Комментировать
  • Как уменьшить масштабирование в windows 10?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разрешение смени, 1366x768 -> 1920x1080 ну или как там по пропорциям...
    Ответ написан
    2 комментария
  • Повторяющийся запрос до определённого ответа?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Заведите переменную с меткой времени, перед отправкой сравнивайте ее с текущим значением времени, если разница больше 2 минут - выход из цикла.
    Ответ написан
    2 комментария
  • Насколько актуален чистый PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Цель какая?
    Устроиться наконец на работу? Стать "разработчиком на чистом пхп"? Писать модули на Си для пхп?
    Если первое - учите фреймворки, тот же ларавель, идите работать, учитесь у коллег, читайте книжки, смотрите хорошие курсы... Во первых так вы сразу убиваете 2 зайцев - и учитесь и получаете деньги. Во вторых, если вы этого не знали, вы ВСЕ РАВНО будете практически всю жизнь учиться и читать, если уже пошли по этой кривой дорожке.
    Ответ написан
  • Как ограничить количество запросов к серверу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть 2 варианта, и первый - как написал Максим Бабичев использовать ограничение на стороне сервера или кода, однако по вопросу не ясно что за запросы ты обслуживаешь, по этому, в случае если у тебя запросы однотипные, поможет кэширование, что позволит отдавать относительно свежие данные без запроса в бд. Ну, и если предполагается прям завал запросов из которых часть повторяющихся, а часть уникальных - отделить первые от вторых и по первым отдавать кэш, а по вторым использовать задержки.
    Ответ написан
    2 комментария
  • Как сделать вывод коллекции объектов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Чет какая-то каша из топора и опилок...

    1) Если это ProductCollection зачем туда передавать Product? Если бы это был просто Collection - это имело бы смысл.

    2) Передавать DB в параметрах - такое себе, есть DI для такого, зачем этот мусор в конструкторе?

    3) return (object)$data; вообще не айс, зачем было создавать массив, а потом его кастить? Создавайте сразу объект. Я вообще в данном случае не вижу смысла возвращать объект, верните массив и все, зачем эти касты? И зачем эти двойные присвоения?
    $product = new $this->product($v['id'], $v['name'], $v['price']); // тут явная лажа с объявлением
    $data[] = $product; // а тут явно лишний шаг, это можно было сделать строкой выше
    4) new $this->product это вообще как??? У вас там не строка вроде, а объект...
    Ответ написан
    6 комментариев
  • Как реализовать адаптив Slick Slider?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    прт каждом resize - е код пытается добавить сллайдер.
    Для этого заводите глобальный флаг типа let sliderInited = false;, и при инициализации проверяете, ставите в тру и дальше уже не инициализируете.

    у одного из блоков изначально display: none;
    Если это из-за того что вы прятали слайдер, то поможет реинициализация: $('.slick').slick("refresh");
    Ответ написан
    2 комментария
  • Как задать актуальное время в sql запросе?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как отобразить две строки в одну?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    distinct + concat, правда полей будет только 2
    Ответ написан
    Комментировать
  • Как правильно "поймать" название директории в которой непосредственно находится файл?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    explode() по / и array_pop() 2 раза.
    Ответ написан
    Комментировать
  • Ошибка при отправке данных на почту?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    if(!$mail->send()) {
        echo 'Error:'; var_dump($mail->ErrorInfo);exit();
    } else {
        header('location: thank-you.html');
    }
    Ответ написан
  • Как правильно вытащить из двух таблиц mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    таблица guests - whoinvited должен хранить id приглашающего, тогда можно сделать джоин по этим таблицам по ид и хуинвайтед, но в любом случае - в одной строке вы не получите ВСЕХ приглашенных отдельными полями, либо это будут строки дублирующиеся по таблице юзерс и отличающиеся только по инвайтед, либо можно сделать груп бай хуинвайтед и конкат на гестнэйм, и будет 1 поле со строковым значением всех имен.
    Ответ написан