Задать вопрос
  • Как использовать собственные константы?

    Александр Смирнов, короче все должно работать. Единственное что можно еще переписать кеш конфигурции:
    php artisan config:cache
  • Как лучше сохранить фильтрацию/сортировку на странице после сохранения/апдейта?

    alex-1917, я же отметил что зависит от сценариев, просто если учитывать что работа может вестись с разных устройствах. Вы же не написали ваши пользовательские сценарии. Вот например с CRM это может быть актуально, запоминать так фильтры. Во многих случаях и для магазина тоже, к тому же опять таки даже хранение/кеширование этих данных может происходить по разному. я лишь описал один из возможных, который не так плох и достаточно универсален, и при правильном подходе легко написать универсальный обработчик, которому будет почти не важно где и как ты хранишь, но это уже отдельная история.
    И естественно для вашего случая возможно лучше подойдет другой.
  • Как лучше сохранить фильтрацию/сортировку на странице после сохранения/апдейта?

    vism, куки хуже, стерл куки настройки провали. БД привязка непосредственно к пользователю независимо от устройства и тд. Иногда совмещают эти способы, все зависит от сценариев. Кода совсем немного, если изначально "фильтры" для поиска еще и по уму спроектированы, с автоматическим формированием из свойств объектов, то можно грубо говоря один раз все закодить, а потом все будет автоматом работать.
  • Как сделать переадресацию?

    kiril9011, так у тебя вордпрес? Там кстати есть своя функция auth_redirect, можешь посмотреть как они ее реализовали, со всеми проверками (через поиск найди auth_redirect).
  • Как сделать переадресацию?

    kiril9011, в смысле? Советовать что-то вам сложно, так как нужно погружаться во всю архитектуру вашего приложения.
    Грубо говоря у вас должен быть механизм который проверяет атворизацию и пускает юзера либо редиректит на логин. Грубо говоря вам нужно реализовать свой Middleware для этого. Это типа прослойки которая выполняется до (хотя есть и случае когда после) отдачи данных или чего еще пользователю, возможно меняя данные перед их показом. Аутентификация это один из случаев когда нужно использовать этот подход.
  • Как добавить данные в JSON колонку в БД без SELECT'a?

    Павел, а зачем придумывать, почему не использовать стандартную реляционную модель? Есть нет какого-нибудь специфического случая, я думаю городить сверх оптимизации не нужно, просто создать полноценную схему для вашего чата. Тм более это такая вещь что может потребовать неизвестно какого функционала в будущем, и будет удобно иметь изначально хорошую схему связанную с пользователем.
    А так конечно можно и nosql решением пользоваться, хранить тупо все, но снова таки, вопрос упирается в стратегию развития проекта, что будет потом, какие проблемы решит, какие создаст. Везде свои плюсы и минусы.
    Лично я склоняюсь к обычному подходу с реляционной БД для сообщений, как более гибкой и простой в плане возникновении потребности в написании доп логики(она уже реализована в СУБД), как было бы с key:value подходом, он вот хорош для всякого кеширования например.
  • Как проверить файлы на исправность перед резервным копированием?

    Курум, для линукса самый простой вариант cksum(он правда не устойчив к взлому, хакеру относительно легко подобрать изменение в файле чтобы итоговая сумма была ок, но для проверки целостности годится), ну а так погуглите удобный вариант для вас, их много, возможно вам будет удобно это автоматизировать в ваши скрипты и тд и тп.
  • Почему не работает битбакет?

    Андрей, иногда блокировки происходят ошибочно. Короче говоря скорее всего какой-то из основных узлов их сети решил что вы выходите из места на которые наложены санкции, а значит доступ нужно закрыть.
    Ну конечно не исключена просто ошибка маршрутизации путей, но моя практика показала что скорее вариант ошибочной блокировки. У них там частенько бывает не тот список ip с гео привязкой.
  • Как проверить get параметр в роуте?

    Алексей, ну и отлично. Не забудь тогда отметить как решение.
  • Ребят нужны те кто с опытом, никак не могу определится писать на чистом или фреймворке PHP?

    web-quest3, это не имеет изначально принципиального значения. Так как раз можно начать переходить на современные стили.
    А компонентов у них множество, на все случае жизни, грубо говоря все компоненты вместе взятые и есть Symfony.
    Поэтому бери свой проект, смотри что тебе больше всего не нравится, допустим это роутинг, и бери роутинг от Симфони, пожключи к своему проекту, посмотри как работает, что тебе придется еще у себя переделать, почитай на досуге сам код их компонент и тд и тп. Так потихоньку у тебя многое либо заменится компоннетами Симфони, либо тебе придется потихоньку переходить на новые парадигмы.
    Ну и повторюсь, конечно же даже самый ужасный быдло кодинг может ужиться с Сифони, либо чем другим, это уже отдельная проблема.
  • Как кастомизировать повторяющиеся блоки в Pug?

    Андрей Зернов, вообще не так,
    - var page = "woohoo";
    Для присваивания используется =, ну и плюс у pug есть небольшие особенности использования (они на самом деле придуманы для изоляции кода pug от внешнего js).
    === - это для сравнения используется, при этом мы использовали строгое неравенство, есть еще == они отличаются тем что строгое неравенство не приводит типы друг к другу, можешь в консоли разработчкиа в браузере поиграться и сравнить.
    Например 0 == '0' будет true, а вот 0 === '0' будет false, типы не приводятся друг к другу, строка никогда не будет равно числу.
    А вообще советую хоть поверхностно знать основы js прежде чем идти в pug или подобные штуки.
  • Почему письма с сайта, приходящие на Gmail попадают в спам?

    Ruslan_PR, я бы тогда однозначно бы сделал новый домен для рассылок, видимо все же явный черный список. При этом имей ввиду, что у них черный список по ip тоже (ну домен+ip), поэтому скорее всего новый домен на том же ip так же автоматом пойдет в спам.
    Если у тебя shared хостинг, то тут гиблое дело что-то делать, а так возможно у предыдущего владельца ip была плохая история, ну либо по другим причинам тебя они забанили.
    Проверь на нескольких ресурсах(нагуглишь я на память не помню) чистоту своего ip с точки зрения spam репутации, потом проверь не сидит ли у тебя на сервере какая-нибудь зараза, вирусы очень часто занимаются как раз таки спам рассылкой с зараженного сервера, ну и после всего этого пиши в гугл https://support.google.com/mail/contact/msgdelivery
  • Почему письма с сайта, приходящие на Gmail попадают в спам?

    Ruslan_PR, ну возможно. Но опять таки, в спам он попадает только у вас в аккаунте или у всех на gmail?
    По большому счету переход на их платформу ничего принципиального не изменит, если вы оказались в их непрозрачном черном списке. У mail.ru кстати схожая проблема, там обычно даже быстрее попадаешь в автоматический спам, и тоже совсем не прозрачные причины, хотя они говорят что принципы работы всех фильтров не раскроем, чтобы спамеры не научились обходить.
    Так и живем.
  • Почему письма с сайта, приходящие на Gmail попадают в спам?

    Ruslan_PR, тут тогда бороться очень трудно, переписываться с поддержкой google практически бесполезно, вот даже таже администрация ТематическихМедиа несколько месяцев боролась с попаданием в спам писем от МоегоКруга (я думаю это прежде всего следствие наследия предыдущего владельца домена) и так ничего у них не вышло, вот вчера они сделали новую тактику, прислали письмо что я отписан от ВСЕХ рассылок и с кнопкой подписаться заново, чтобы сузить ядро подписчиков чтобы были только заинтересованные, а не только те кто на автомате помещает в спам/удаляет.
    А для вас вариант попробовать делать рассылки с нового домена. купить специально служебный домен для этих целей (возможно просто поддомен, но видимо лучше будет вообще новый).
    Переработать текст письма, сделать чтобы тема была уникальной(я часто делал метки времени, если это письма из моих технических рассылок, таким образом и тема письма каждый раз отличалась).
  • Почему при сортиртировке именованная функция быстрее чем анонимная?

    Никита Полевой: в смысле не логично? Это же у тебя в коде прямо прописано. Каждое объявление анонимной функции - это создания объект класса Closure.
    И выходит каждый вызов usort($arr, function ($a, $b) ... создается новый объект, а каким он способом обратится к уже созданному? Короче это так скажем разработано изначально, ну и да цена за удобство. Поэтому когда большие циклы то тут нужно знать эту фичу и пользоваться с умом, выбирая баланс между удобством и производительностью.
  • Как забирать с github последние комиты через composer?

    Максим Тимофеев: попробуй рецепт отсюда:
    Они рекомендуют прописать "require": { "имя/пакета" : "dev-master" } и "minimum-stability": "dev". Хотя последнее как стремно.
    Ну и удалять composer.lock и папку с загруженными пакетами, а потом делать composer install.
    Хотя вдруг у тебя проблема что там ниже один комментирующий ответил
  • Как забирать с github последние комиты через composer?

    Максим Тимофеев: а ты хуки настраивал на ГитХабе чтобы он стрелял в композер при обновления репозитория?
  • Парсинг php + curl отдает 403 ошибку?

    Кирилл Горелов: чем больше разнообразия тем лучше.
    Единственное что нередко сторонние прокси значительно замедляют парсинг, да и количество отказов резко увеличивается(где-то что-то слишком долго грузилось).
    Поэтому лучше к своему серваку/vps докупать ip шники и
    curl_setopt($ch, CURLOPT_INTERFACE, "XXX.XXX.XXX.XXX");

    Короче задай отдельно(неважно где вручную, в БД, с конфиге) список опций, где у тебя будут несколько разных юзерагентов, список твоих купленных ip и тд, и скрипт оббертка должен запускать твой парсер каждый раз со случайными параметрами.
    Но все равно будь готов к банам(а так же порой абьюзам к хостеру), и перездам на другие серваки.
    Это самый эффективный из простых сценариев.
  • Наследование обязательно в медиа-запросах?

    vladimir_html: все работает.
    Может вы забыли про приоритет указания точности.
    Если вы выше(или не важно где), указали класс как:
    .parent  .child {
    
    }

    Он будет главнее чем
    .child {
    
    }

    Где бы тот не находился. Это касается любых дополнительных каскадов или дополнительных классов/айдишников.
    Вам поэтому выше посоветовали не плодить множество каскадов, там где это не нужно. Каскады нужны только для уточнения стилей, а так старайтесь писать более простые общие классы, хорошо бы перейти на модель которую предлагает методология БЭМ