Задать вопрос
  • Какая конъюнктура требований к джуну?

    DevMan
    @DevMan
    вопросы спрашивают исходя из конкретных потребностей, а не ради галочки. то есть спрашивать о зайке или редиске, когда они не используются, имеет смысла никакого. от слова совсем.
    это же относится и к фреймворкам, и прочим словам в вашем вопросе.

    меня в джунах интересуют не столько его знания, сколько наличие живых мозгов, интереса к предмету (а не только зп) и способнось это продемонстрировать.
    отдельным (и важным) пунктом - адекватность в восприятии критики и последующие выводы.
    Ответ написан
    1 комментарий
  • Почему не запускается windows на материнской плате ASRock G41M-VS3?

    profesor08
    @profesor08
    Поздравляю, вы выиграли спер приз!

    1. Убедись что приоритет загрузки установлен как USB
    2. Убедись что винда, которая записана на флешку, нормальная, скаченная с офф сайта майкрософт и записана на флешку через их же утилиту.
    3. Последнее это прошивать биос, но раз линукс встал, то дело не в материнке.
    Ответ написан
    2 комментария
  • Зачем при чистке ПК вычищать пыль НАЧИСТО?

    hint000
    @hint000
    у админа три руки
    Я видел в некоторых видео на ютубе
    Ответ здесь.
    Ролик на ютубе должен произвести впечатление.
    Если всё не будет сверкать, то впечатление так себе.
    Если впечатление так себе, то мало лайков. :)
    В реальной жизни не так, как в ютубе.

    Хотя бывает мне приносят системник переустановить винду. Если вижу, что его лет десять не чистили от пыли, то могу и вскрыть БП для чистки, т.к. пыль, слежавшаяся большими комками, через вентиляционные решетки не всасывается. Но настолько запущенные экспонаты попадаются редко.
    Ответ написан
    5 комментариев
  • Зачем при чистке ПК вычищать пыль НАЧИСТО?

    profesor08
    @profesor08
    Зачем при чистке ПК вычищать пыль НАЧИСТО?

    Ради эстетического удовольствия.

    Мне вообще кажется, что достаточно пыль сдуть чем-то вроде компрессора / баллона с воздухом / фена с режимом холодного воздуха или хотя бы резиновой груши (клизмы)

    баллончика с сжатым воздухом вполне хватает чтоб температуры нормализовались
    Ответ написан
    Комментировать
  • Какой лучше использовать тип архива gz или bz2?

    @rPman
    В linux исторически сложилось для архивации использовать tar, это наверное самый многофункциональный инструмент, позволит сохранить все плюс даже то что не нужно.

    * для сохранения прав нужен ключ -p
    * для сохранения extended attributes нужен ключ --xattrs
    * для обнаружения и сохранения информации о дырявых файлах sparse ключ -S
    * символические ссылки будут сохранены как ссылки по умолчанию, поведение можно по разному менять опциями (например хранить как файл или к примеру при распаковке пробовать создать hardlink вместо symlink и т.п.)

    Упаковывать можно потом полученный tar архив или лучше в процессе, ключ -a автоматически определит архиватор по расширению, чем угодно. Никто не мешает тебе создать архив без его сохранения просто отправляя его в момент создания в никуда:
    tar -cjf /dev/stdout . | wc -c
    будет сжимать bzip2 (ключ j) текущий каталог с подкаталогами и отправлять его в команду wc, которая просто посчитает его размер в байтах и выведет на экран. Повтори команду поменяв ключ j на J (это xz), z (это gzip) и т.п. и сравнивай полученные размеры (советую попробовать zstd)

    p.s. как альтернатива, можно архивировать не файлы а весь раздел, с помощью набора утилит partclone (поддерживает все даже что то типа ntfs) можно создать копию раздела, в котором не будут сохранены сектора, помеченные как свободные, при этом скорость работы утилиты сравнима с dd (а это вообще просто посекторное копирование) и в большинстве случаев позволяет менять размер раздела, на который будет все это восстанавливаться (с ntfs редко но могут возникнуть проблемы при уменьшении)

    p.p.s. еще есть фичи-инструменты файловых систем, например у btrfs есть возможность получить в качестве файла разницу между указанными снапшотами, созданными в разное время, и применить его позже, хоть на другой машине... тоже можно считать инструментом для бакапа
    Ответ написан
    4 комментария
  • Как правильно писать catch в php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для того чтобы правильно писать catch, надо писать осмысленный код.

    А здесь мы наблюдаем очаровательный пример карго-культа.
    Узнав, что "толстый контроллер - это плохо, а сервисы - это хорошо", автор небрежным движением руки замел весь мусор под ковёр перенёс весь код из контроллера в "сервис". Ну а что? Контроллер худой, весь код в сервисе!
    Тот факт, что сама кривая структура проекта осталась, по сути, той же самой, нас не смущает.
    Как и то, что сервис вдруг начал выполнять функции НТТР контроллера и кидать почему-то НТТР исключения. Что с этими исключениями делать в случае, если тот же сервис будет вызван из консольной команды - загадка.

    Но самое забавное, что при всём при этом контроллер всё равно пытается выполнять работу модели. Казалось бы, какое отношение интерфейс для обслуживания НТТР запросов имеет к транзакциям в базе данных? А вот поди ж ты!

    Чтобы сделать этот код осмысленным, контроллеру всё-таки придется потрудиться, и выполнить какую-то работу самому, а не перекладывать на "сервис". А так же отдать модели то что ей принадлежит.

    В общем транзакцию перекинуть в createDefault. причём не напрямую, а ещё ниже - в слой для работы с БД. Стартовать транзакцию до валидации данных - это как бы *не совсем логично*, мягко говоря. И в итоге, как по волшебству, весь этот говнокод исчезнет как страшный сон.
    При этом в параметрах передавать не НТТР реквест чохом, а осмысленный набор параметров, вынутый предварительно из реквеста!
    В частности, если модель сама проверяет права доступа, то и передавать ид пользователя из авторизации.

    При этом модель не должна кидать НТТР исключения. Она должна кидать исключения бизнес-логики. Которые контроллер уже может ловить и транслировать в хттп. Но тут видимо уже сложнее, поскольку это ж ларавель судя по всему.

    В любом случае, уж catch (Exception $e)-у тут точно не место

    Но это если рассматривать твой конкретный случай.
    В общем же случае правильный код написал Илья.

    То есть внутри трая операции с БД и коммит.
    в кетче роллбэк и перевыброс исключения. Только ловить надо Throwable

    try {
      DB::beginTransaction();
      // запись в БД
      // запись в БД
      // запись в БД
      DB::commit();
    } catch (\Throwable $e) {
      DB::rollBack();
      throw $e;
    }
    Ответ написан
    2 комментария
  • Автоматическое переименование, на имена, которые написаны внутри формы, загруженных файлов в сами формы?

    @ukoHka
    Всего понемногу
    При загрузке файла через формы он автоматически сохраняется на сервере под сгенерированным именем, которое можно получить из $_FILES['file']['tmp_name']. После завершения обработки запроса этот файл удалится автоматически, поэтому его необходимо сохранить в отдельном месте, а для этого нужно указать имя. И тут можно указать любое имя, включая значения полей из массива $_POST.
    В частности, можно продублировать надпись в скрытое поле filename и на стороне сервера заменить $_FILES['file']['name'] на $_POST['filename'].
    Ответ написан
    1 комментарий
  • Автоматическое переименование, на имена, которые написаны внутри формы, загруженных файлов в сами формы?

    @IS-Builder
    ~ PHP-8 & REGEXP - This is a really powerful kit ~
    Чтобы сделать такое на PHP (в отличии от JS или JQuery), понадобится задавать название формы динамически в переменной, и подставлять эту переменную вместо имени файла. Если форм и их названий несколько, то вместо переменной нужно использовать массив с названиями, и циклы. Например:
    Code
    <?php
    
    $formNames = [
        'Заявление и согласие на обработку персональных данных',
        'Что-то ещё'
    ];
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        foreach ($_FILES['userFile']['name'] as $k => $name) {
            $filename = $formNames[$k] . '.' . pathinfo($name, PATHINFO_EXTENSION);
            $uploadFile = __DIR__ . DIRECTORY_SEPARATOR . $filename;
            move_uploaded_file($_FILES['userFile']['tmp_name'][$k], $uploadFile);
        }
    }
    
    ?>
    
    <form enctype="multipart/form-data" method="post">
        <?php foreach ($formNames as $formName) { ?>
            <p><?=$formName?><br><input type="file" name="userFile[]"></p>
        <?php } ?>
        <input type="submit" value="Отправить">
    </form>
    Ответ написан
    1 комментарий
  • Как можно ускорить код php?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Для начала данный код нужно отрефакторить и сделать его хотя бы читабельным. Почитайте про рефакторинг, про ООП...

    Так как по коду нечего сказать скажу методы для ускорения работы уже написанного кода.

    1. Первый вариант это перейти на более последнюю версию php. Например, 7.х, 8.х. Особенно почувствуете разницу при переходе с версии 5.6 на 7.х. Однако какой-то код может сломать. Подходите этому внимательнее.

    2. Использовать кэширование. Кэшировать можно как внедрением в вашем коде кэширования, так и расширениями php вроде opcache.
    Ответ написан
    4 комментария
  • Перестал работать USB порт, как исправить?

    xez
    @xez Куратор тега Компьютеры
    TL Junior Roo
    в сервис
    Ответ написан
    Комментировать
  • Почему неправильно определяется дата?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Месяц назад от 31 мая какое число было? 30 апреля? Ок. А месяц вперёд от 30 апреля будет 30 мая или 31 мая? А месяц вперёд от 31 мая что будет, 30 июня или 1 июля?
    Если надо просто определить предыдущий месяц, то используйте 'first day of previous month'.
    Ответ написан
    Комментировать
  • Не работает отправка по кнопке. Что делать?

    Spartak-2205
    @Spartak-2205
    Разработка и создание сайтов
    Что делать?

    Заменить
    <button method="POST" name="buttton" class="btn btn-warning" type="submit">Записать в БД</button>

    На
    <input type="submit" name="buttton" class="btn btn-warning" value="Записать в БД">

    Так как у button нет атрибутов method и name, соответственно это условие работать не будет if (isset($_POST['buttton']))

    И включите вывод ошибок php и mysqli на экран
    <?php
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
    // далее остальной код


    P/S: для безопасной работы с базой данных используйте подготовленные запросы
    Ответ написан
    Комментировать
  • Как работать с таким форматом даты в PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $dateTime = new DateTime('2021-05-18T15:30:00.000-04:00');
    var_dump($dateTime);
    $dateTime->setTimezone(new DateTimeZone('Europe/Moscow'));
    var_dump($dateTime);
    
    // object(DateTime)#1 (3) {
    //   ["date"] => string(26) "2021-05-18 15:30:00.000000"
    //   ["timezone_type"] => int(1)
    //   ["timezone"] => string(6) "-04:00"
    // }
    //object(DateTime)#1 (3) {
    //  ["date"] => string(26) "2021-05-18 22:30:00.000000"
    //  ["timezone_type"] => int(3)
    //  ["timezone"] => string(13) "Europe/Moscow"
    //}
    
    $timestamp = strtotime('2021-05-18T15:30:00.000-04:00');
    var_dump($timestamp); // int(1621366200)
    date_default_timezone_set('Europe/Moscow');
    $dateTime = date('c', $timestamp);
    var_dump($dateTime); // string(25) "2021-05-18T22:30:00+03:00"
    Ответ написан
    Комментировать
  • Какие проекты можно реализовать начинающему php разработчику?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) Хранить картинки в бд - надо себя очень не любить...
    1) Все просто дырявое как дуршлаг, инъекции на инъекциях...
    2) Размер поля под картинку наверняка коротковат, и вполне возможно даже не блоб. Отсюда и проблема - картинка тупо не вмещается в поле целиком.
    Ответ написан
    Комментировать
  • Хостинг: арендовать или создать на домашнем пк?

    Lunali
    @Lunali
    скрытна.
    А для чего нужен? Если у вас там всего 100 просмотров в день и для личных нужд можно и домашний....

    что то вроде роуртера с внешним диском.. 60a7ffb6933f3842391214.jpeg

    Купите у провайдера постойный айпи и все.

    А вот если сайт , да если у вас там по 10 000 просмотров в день ....То конечно хостинг ...

    Все верно вам сказали хостинг это не просто сервер и статичный IP , к тому же это даже дешевле домашнего сервера .
    Ответ написан
    Комментировать
  • Хостинг: арендовать или создать на домашнем пк?

    dima9595
    @dima9595
    Junior PHP
    можно, но если только хотите дохрена геморрою, потраченных клеток и херовой безопасности. а, ну да, как же без этого: херовый инет (так как сервер может сжирать бОльшую часть трафика без подобающей настройки), проблемы с провайдером из-за DDOS, проблему с железом (замена, ремонт) ну и конечно же счета за электричество. Да и шум от сервера ни куда не денется. Да и много-много других причин. Так что если вы не готовы поднимать всё оборудование и настраивать "от" и "до", то заплатите каких-то несчастных 100-500 рублей и не будите париться.
    Ответ написан
    Комментировать
  • Зачем нужен PHP Taint (испортить строку)?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Это функция для имитации строки с уязвимостью, чтобы вручную не воспроизводить эту уязвимость в натуральном виде. Мне кажется что эта статья из Psalm хорошо описывает смысл этой уязвимости и способы устранения (а значит и смысл существования функции)
    https://psalm.dev/articles/detect-security-vulnera...
    Ответ написан
    2 комментария
  • Файлы учетной записи?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ну в общем то нет таких. Создайте табличку пользователи, добавьте логику регистрации, входа и восстановлениЯ. И собственно все. Серверный язык выберите по вкусу
    Ответ написан
    Комментировать