Задать вопрос
  • Composer как сгенерировать composer.json с заранее выбранными пакетами?

    У команды init достаточно большой перечень опций, так что можно в саму команду прописать все дефолтные значения, и каждый последующий проект инициализировать ею:
    composer init --name='gordinskiy/new_package' \
        --description='Project description' \
        --type='library' \
        --author='Dmitriy Gordinskiy' \
        --license='MIT' \
        --require='php:>=8.2' \
        --require='webmozart/assert:^1.11' \
        --require-dev='phpunit/phpunit:^10.3' \
        --require-dev='vimeo/psalm:^5.11' \
        --require-dev='phpstan/phpstan:^1.10'
    Ответ написан
    Комментировать
  • Для чего нужно дублирование в папках avaliable и enabled?

    paran0id
    @paran0id
    Умный, но ленивый
    Не дублирование, а symlink. Примерно как ярлык. В avaliable храним конфигурацию хоста, в enabled кидаем симлинк, чтобы включить его. Nginx считывает конфиги из enabled. Если хотим выключить, удаляем симлинк, а файл конфигурации остается лежать.
    Ответ написан
    2 комментария
  • Какие особенности разгона ОЗУ с 3200mhz на 3600mhz?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Самый лучший способ - посмотреть в QVL матери и выбрать быструю память из списка.
    Память не из QVL тоже может завестись с XMP профилем, а может заработает только на частоте без разгона, ну или какой-то промежуточный вариант возможен.
    В XMP профиль обычно зашита максимальная частота (т.е. 4000 в вашем случае).

    Предлагаю такой план:
    1. Устанавливаете XMP профиль, пробуете.
    2. Если не заработало, не включилось или работает с ошибками - устанавливаете XMP профиль, но снижаете частоту до 3200.
    3. Если не помогло - устанавливайте по дефолту и пробуйте разгонять.

    Самое главное, о чем стоит помнить: разгон памяти не дает как правило, существенного прироста производительности. 3200 - вполне хороший вариант, 3600 - прекрасно, дальше 3600, скорее всего, разницы не будет вообще никакой.
    Ответ написан
  • Как влияют инфракрасные обогреватели на ПК и оргтехнику?

    Stalker_RED
    @Stalker_RED
    У меня лет шесть висел излучатель UFO на стене, на 1.8кВт, если не ошибаюсь, метрах в трех от компьютера. Работал не постоянно, а только когда батареи не вытягивали. Ухо припекало мне - было дело, что отсаживался от этой штуки подальше. Никаких особых воздействий на пластик я не заметил.
    Ответ написан
    2 комментария
  • Как архивировать все кроме одной директории?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если невероятным интеллектуальным усилием правильно атрибутировать свою проблему, и сообразить, что она не имеет ни малейшего отношения к РНР, то её вполне можно задать мировому разуму: tar исключить директорию
    Ответ написан
    Комментировать
  • Как архивировать все кроме одной директории?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $ man tar
    ...
           --exclude=PATTERN
                  Exclude files matching PATTERN, a glob(3)-style wildcard pattern.
    Ответ написан
    Комментировать
  • Сборка бюджетного ПК, запустится?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Даже не соберётся. Процессор от AMD на сокет AM4 не встанет в интеловский сокет LGA1200.
    Ответ написан
    Комментировать
  • У меня не правильный код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    = ≢ ==
    - if($block_level = 1){
    + if ($block_level == 1) {
    - }elseif($block_level = 2){
    + } elseif ($block_level == 2) {
    - }elseif($block_level = 3){
    + } elseif ($block_level == 3) {
    Ответ написан
    Комментировать
  • Как глобально сохранить куки через компонент HttpFoundation?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    php отправляет заголовок браузеру что нужно установить куку, а не ставит ее. Бесполезно проверять ее наличие сразу после отправки заголовка. В следующем запросе эта кука вернется браузером на сервер.
    Ответ написан
    Комментировать
  • Как в RabbitMQ обработать все сообщения а затем удалить очередь и закрыть соединение?

    2ord
    @2ord
    Странная затея насчёт удаления очереди.
    Ну если так надо, то отправляй сообщение о том, что окончились сообщения. Тогда обработчик очереди получит его и будет знать, что очередь можно удалять.
    Ответ написан
    Комментировать
  • Как в RabbitMQ обработать все сообщения а затем удалить очередь и закрыть соединение?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Очередь - бесконечная по дизайну. Поэтому прикладной софт никогда сам не может решить
    прочитал-ли он последнее сообщение или нет. Сетевой протокол тоже в этом смысле не помошник
    потому-что шлет сообщения пачками и тоже нельзя гарантировать что пачка - последняя.

    Единственный разумный выход - если producer создает специальное сообщение-терминатор
    которое как-бы сигнализирует что все дескыть конец.
    Ответ написан
    Комментировать
  • Производительность решения SQL like vs join?

    @rPman
    Ты забыл третий вариант, самый быстрый и наиболее предпочтительный если общее количество опций не велико (сотни, например у mysql лимит 1024 колонок максимум) - каждая опция это своя колонка, пустое (null) значение будет значить отсутствие опции у записи.

    Недостаток подхода - если у объекта может быть несколько опций с одним именем, то такой подход не работает (но судя по всему это не твой случай).

    Еще момент, полученная таблица будет сильно разряженной (т.е. много нулей) и многие базы данных на диске выделяют для пустых записей место (вопрос нужно изучать).

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

    p.s. если говорить про твои варианты:
    * для 1 используй json сериализацию (опция=значение) в mysql для работы с такими данными есть соответствующие методы
    * для 2 постарайся вместо текстовых наименований опций использовать числовые идентификаторы, заведя соответствующий классификатор либо в базе в отдельной таблице либо в виде констант в коде.

    p.p.s. Ну и еще вариант, если тип значений опций - boolean (либо ограничен небольшим количеством значений, например цвет светофора 4 - выключен, красный, желтый, зеленый) то так же заводи для этих значений числовой эквивалент. В этом случае у тебя появляется еще бонус, упаковывать битовые значения (где количество вариантов 2^x и x это количество бит) и хранить в целочисленном поле сразу несколько (правда не все базы позволяют индексировать операции с битами).
    Ответ написан
    3 комментария
  • Как выбрать базу данных для проекта?

    @alexalexes
    1. Если в разрабатываемой системе нет потребности производить нечеткий поиск, получать сверхбыстрый ответ на запрос в реальном времени (не более пары миллисекунд), производить аналитику данных в самых разных разрезах. У вас в потоках данных определены сущности с четкими реквизитами и сущности имеют высокую связность, то в 99% случаях вы даже не повернете голову в сторону нереляционных СУБД, будете использовать реляционные.
    2. На самом деле, просто зависит от того, как сложно администрировать СУБД в том масштабе, в которой развилась база данных. Сначала берут первую попавшуюся, или с тем, с чем освоились более-менее, а потом смотрят с течением времени, как сложно нанять нужного специалиста на администрирование, удобно ли масштабировать экземпляры баз данных при возросшей нагрузке, удобно подымать экземпляры из небытия, держать непрерывный аптайм. Вот тут уже выясняется специфика работы предметной области и необходимость переезжать на подходящее окружение.
    Ответ написан
    1 комментарий
  • Как объединись значения из двух массивов в один?

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

    @kalapanga
    1) Простое - клубок перепутаных проводов где каждый тянет другого, который раньше лежал спокойно на полу, а теперь висит, а его ещё и пяткой задевают (образно говоря).
    2) Ученое - компьютер оказался рядом с каким-то мощным источником помех.
    3) Грустное - материнка дохнет.
    Наверное можно и ещё придумать что-нибудь.
    Ответ написан
    Комментировать
  • Почему компьютер постоянно перезагружается?

    xez
    @xez Куратор тега Компьютеры
    TL Junior Roo
    Похоже, что видеокарта сдохла.
    Ответ написан
  • Как быстро освоить Git?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    https://git-scm.com/book/ru/v2

    Не стоит переписывать в 100500 раз то, что уже написано. Просто прочтите один раз и сохраните закладку. Пригодится, поверьте.
    Ответ написан
    2 комментария
  • Как записать base64 в таблицу?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить картинки в бд крайне кривое решение. Это может быть оправдано только в случае когда там хранится пара иконок, вставленная в текст прям через <имг срц="тут_бэйз64_строка"... и нет желания все это переделывать ради 2 кастомных микрокартинок. В остальном - конвертировать в картинку и хранить на диске. В бд писать путь до картинки. Если это какой-то аватар или картинка, связанная с другим объектом, соответственно заводить отдельную таблицу на картинки и связь один-к-одному или один-ко-многим, в зависимости от ситуации. В худшем случае поле в той же таблице, если точно будете знать что других картинок к объекту относиться не будет, но это должен быть путь до реальной картинки на диске.
    2) Почему хранение в бд - плохая идея: При каждом запросе у вас будет вытаскиваться пару мегабайт данных из бд, передаваться по каналу соединения с бд, помещаться в память, и после этого еще нужно программно отдавать картину, кроме прочего картинка в бэйс64 занимает примерно на 30% больше места.
    Когда у вас есть картинка на диске, вы просто вставляете путь до нее, это ~50 символов, и сервер отдает ее БЕЗ УЧАСТИЯ ПРОГРАММНОЙ ЧАСТИ, средствами вебсервера и ОС. Это быстрее, потребляет меньше памяти и занимает меньше места в хранилище.
    Ответ написан
    Комментировать
  • Как дать перманентный бан за мультиак на сайте?

    vabka
    @vabka Куратор тега Веб-разработка
    По ip точно не получится отследить. А раз тут разные браузеры - по фингерпринтингу тоже не выйдет.
    Так что только по признакам, которые пользователь сам по глупости укажет (одну и ту же почту например) или по поведению.
    Ответ написан
    8 комментариев
  • Количество переменных не совпадает с количеством токенов при записи в таблицу БД. Можно ли использовать массив как переменную?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Здесь, собственно, весь код на выброс.
    -    $i = 0;
    -    $coll = '';
    -    $mask = '';
    -    foreach ($params as $key => $value) {
    -        if ($i === 0) {
    -            $coll = $coll . "$key";
    -            $mask = $mask . "'" . "$value" . "'";
    -        } else {
    -            $coll = $coll . ", $key";
    -            $mask = $mask . ", '" . "$value" . "'";
    -        }
    -        $i++;
    -    }
    +    $coll = implode(',', array_keys($params));
    +    $mask = ':' . implode(',:', array_keys($params));
    Ответ написан
    Комментировать