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

    @Everything_is_bad
    В итоге работа с этой таблицей может стать крайне затруднительной, а в последствии и не возможной.
    это ты придумал

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

    Короче, у тебя нет опыта, ты подобную базы не способен самостоятельно спроектировать. Начни делать правильно, как написано в книгах, оптимизаций займешься потом, с 99% у тебя не будет столько пользователей, чтобы возникли проблемы.
    Ответ написан
    Комментировать
  • Ошибка в запросе, в чём причина?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое ощущение, что код пропустили через какой-то markdown-редактор, который посчитал, что запись вида u.id это адрес сайта и автоматически заменил на соответствующий markdown-синтаксис ссылок. Такое может быть, например, при пересылке кода как обычного текста в мессенджерах.
    67bc7a1565357335276039.png
    Ну а малограмотный кодер вставил этот markdown-код не задумываясь.
    Так что причина - копипаста без знания синтаксиса конкретного диалекта SQL.
    Ответ написан
    1 комментарий
  • Какие есть инструменты минификации shell кода или bash-скриптов?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Таких инструментов не существует. Причем, скорее всего потому что они никому не нужны.
    Ответ написан
    Комментировать
  • Подключение класса внутри класса: Правильно ли я делаю?

    @GeKskill
    В вашем случае все работает потому что используете include_once о чем говорит само название функции, она подключает ваш класс только единожды. Если не хотите использовать composer с автозагрузчиком классов, можете в своем main файле ( откуда стартует вообще приложение ) разместить все нужные include для классов.
    Ответ написан
    Комментировать
  • Подключение класса внутри класса: Правильно ли я делаю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В целом, подключение классов через include/require уже устарело. Как правило, используется автозагрузка классов по стандарту PSR4, самостоятельная (spl_autoload_register) или через composer.
    Но если оставаться в легаси, то я бы вынес все подключения зависимостей через require_once в начало файлов.
    Ответ написан
    8 комментариев
  • Как все таки использовать cron в связке Docker+php-fpm?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Если честно - не понимаю смысла вопроса, вы же изучили теорию
    сделайте так, как будет удобно вам - вам же с этим жить
    а вообще надо исходить из того чем занимается cron задачи - где-то, ради изоляции потребления ресурсов, лучше вынести крон во второй контейнер, а где-то вы решите запихать его внутрь контейнера приложения
    По поводу запуска на хосте - сервисы контейнеризации обычно не дают доступ к хосту
    Ответ написан
    Комментировать
  • Обьясните в чём суть инкапсуляции?

    Инкапсуляция защищает не от хакеров, а от неправильного использования объектов.
    Как пример - у тебя может быть класс "Заказ" и у него может быть какой-то статус (оплачен/ждёт оплаты/отменён итд).
    При этом у тебя могут быть правила типа: уже оплаченный заказ не может стать вдруг неоплаченным, а отменённый заказ нельзя взять обратно в работу.
    Тогда логично будет сделать поле статуса приватным (не доступным для изменения извне напрямую), а менять его только через методы, где будет происходить вся валидация.
    (В некоторых языках такие правила принято описывать на уровне типов, чтобы даже валидаций никаких было делать не нужно)

    Приватные поля объекта - это его состояние.
    Методы объекта - это способы его использования.

    Если у тебя в объекте появляется поле x и методы getX / setX (или авто геттеры/сеттеры в C#), то значит, что у тебя и нет явных причин делать это поле приватным, кроме соблюдения общепринятых соглашений.
    Ответ написан
    15 комментариев
  • Как c Http клиентом переписать CURL запрос с опцией F?

    1. Выясняешь, что означает этот параметр
    https://curl.se/docs/manpage.html
    В нашем случае это отправка form data с выставлением соответствующего заголовка.

    2. Гуглишь, как это сделать с той библиотекой, которую ты используешь.
    В laravel используется guzzle, так что сразу гуглим для него.
    Находим, что он умеет так делать:
    https://docs.guzzlephp.org/en/stable/quickstart.ht...
    Ответ написан
    Комментировать
  • Как выполнять отладку на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Правильный подход - установка xdebug и пошаговая отладка.

    Есть и более простые методы, например:
    Использовать var_dump()/print_r() в нужных местах, чаще всего этого достаточно для отладки небольших скриптов.
    Включение вывода ошибок в аутпут тоже помогает(либо в пхп.ини меняем соответствующие настройки, либо в коде в начале добавляем
    ini_set('error_reporting',E_ALL);  ini_set('display_errors', 1);

    ), хотя по умолчанию все пишется в лог ошибок и можно посмотреть их там (но опять же, для небольших скриптов это норм).
    Ответ написан
    Комментировать
  • Есть что то проще чем php?

    Братку это делается за 3 секунды на пхп
    там вообще изи.
    прям совсем, просто переименуй файл с html в пхп там прям совсем минимум.
    зайди онлайн на любой сайт с GPT и попроси его сделать пример.
    100% даст сразу правильный ответ

    создай header.php
    <!-- header.php -->
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Мой сайт</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <header>
            <h1>Добро пожаловать на мой сайт</h1>
            <nav>
                <ul>
                    <li><a href="page1.php">Страница 1</a></li>
                    <li><a href="page2.php">Страница 2</a></li>
                    <!-- Добавьте другие ссылки -->
                </ul>
            </nav>
        </header>


    создай footer.php
    <!-- footer.php -->
        <footer>
            <p>&copy; 2023 Мой сайт. Все права защищены.</p>
        </footer>
    </body>
    </html>



    создай index.php
    <!-- index.php -->
    <?php include 'header.php'; ?>
    <main>
        <h2>Содержимое страницы 1</h2>
        <p>Это пример содержимого для первой страницы.</p>
    </main>
    <?php include 'footer.php'; ?>

    Ответ написан
    7 комментариев
  • ALTER TABLE IF NOT EXISTS выдаёт ошибку?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Метод
    ADD COLUMN IF NOT EXISTS
    реализован только в MariaDB, но не существует в MySQL 5-8.
    Итак, похоже, у вас есть MariaDB на вашем локальном хосте и MySQL на сервере.

    Для проверки точной версии БД запустите:
    SELECT VERSION();

    В SQLize.online вы можете протестировать свой запрос на разных БД.
    Ответ написан
    2 комментария
  • Почему wc -l выдает на 1 строку меньше?

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

    IvanU7n
    @IvanU7n
    nothing interesting here
    так и указывать Context\State

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

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Думаю обзавестися сертификатами по ИБ, подтянуть инглиш и идти на upwork

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

    Ага, типичный продукт пятилетней давности. Когда палка и пионер, когда апворк лежа под пальмой... С разморозкой, человече! Мир давно уехал черт-де куда, а ты и не заметил...

    В ИБ, где все строго и регламентировано, в ИБ, где как правило ответственность делегируется (потому что не
    можно управлять системой, будучи внутри ее) - тебе никогда не вырасти никуда с подходом
    нет высшего образования. Получать его не хочу, слишком долго

    Вышка - это такой тест на способность самостоятельного решения задачи. Знания, которые при этом типо получаются - вторичны, хотя некоторые пригождаются. Но в основном вышка - это про умение учиться :) Да-да, вышка учит учиться и не более того. Не одолел - ну вот провалил первый тест на профпригодность. В ИБ, где люди как правило работают на доверии, таких точно не берут (ну разве что в крупных конторах на самые низовые должности)
    Могу написать скрипты для PowerShell и Bash, но с chatGpt

    То есть "освоил Ctrl-C/Ctrl-V, но смысла не понимаю, ибо абизьян
    В целом, могу поднять и настроить любую прогрумму или сервер на Win и Unix.

    По данному заявлению сразу можно сказать, что уровень джуна не преодолен.
    Год не выпускаю из рук ноутбук с KaliLinux,

    Ты ничего не говорил, мы ничего не слышали. Никогда не говори про это в серьезной компании - оборжут и затроллят
    Думаю, что как сисадмин Windows/Linux я почти Middle,

    Ты ошибаешься :)
    Ответ написан
    16 комментариев
  • Какой отечественный linux выбрать для веб-разработки?

    @AlexVWill
    Какой отечественный linux выбрать для веб-разработки?

    Никакой. Для web-разработки абсолютно фиолетово какой у тебя Linux, отечественный или нет. И если нет какой то особой осознанной нужды в использовании именно отечественных изделий, то лучше держаться от них подальше.
    Ответ написан
    3 комментария
  • Что неправильного в моем коде?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Вы получили простое задание, но это не значит, что код нужно написать абы как, лишь бы результат был =). Элементарные вещи стоило бы использовать,как то: автозагрузка классов, шаблонизация.

    0. Код на облачном диске. Почему не гитхаб? Это же удобнее (и плюс в карму=).
    1. Инклуд файлов, вместо автозагрузки классов. Написать автозагрузчик - дело пяти минут. Даже одна минута, если использовать composer.
    2. Разделение мух и котлет. Код отдельно, html-разметка отдельно. Простейший php-шаблонизатор - это тоже пять-десять минут.
    Вот так вообще нельзя писать: echo '<tr><th scope="col">Первый круг</th></tr>';
    3. Разделение обязанностей. У вас один класс и файлы загружает, и читает загруженные, и турнирную таблицу рассчитывает и рендерит ее.
    4. range(0, 19); Почему 20 элементов? Почему не 30? Откуда это число взялось? Его не должно быть в коде.
    5.
    $probablePairsArr[] = range(0, 19);
    $probablePairsArr = $probablePairsArr[0];

    Интересный финт. В чём его сакральный смысл - не ясно. Да и использование локальной переменной здесь не требуется. Можно сразу создавать массив в свойстве класса.

    Наверное всё. Больше там ничего нет.
    Ответ написан
    7 комментариев
  • Что неправильного в моем коде?

    Как минимум, Вы не вникли в задачу. Я вот в футболе практически не разбираюсь - получив такое задание, я пошёл бы в гугл узнавать, как проводятся матчи в турнирах, когда команда играет на своём поле, а когда - нет. Даже по своим скудным знаниям могу кое-что предположить:
    1) Первый круг: команды надо разбить на пары случайным образом. Это shuffle() + array_chunk() . У Вас этого нет.
    1.1) Учесть ситуацию, когда команд - нечётное количество. Этого тоже нет.
    2) в парах какую-то команду назначить хозяином. Соответственно, в выводе в колонке "Хозяева" должно быть не повторение "Хозяева", "Хозяева", "Хозяева", а имена команд
    3) дальше надо смотреть, на каких условиях проводится второй круг, кто в него попадает, на своём поле играют или на чужом..

    Получается, из этого:
    загружать через форму файл json со списком команд, а потом сводить эти команды в турнируную таблицу с условиями (гость, хозяин), круг 1, круг 2 и еще 5-6 условий, которые влияют на список
    Вы выполнили только "загружать через форму файл json", причём зачем-то этот файл сохраняете на диск, а потом немедленно читаете обратно.

    Сергей Вам справедливо указал на "разделение обязанностей", то бишь первую букву в SOLID - Single Responsibility Principle. Даже если оставить на месте выверт с сохранением на диск, получается:
    1. Repository - хранилище данных
    2. метод контроллера, отвечающий за приём данных именно в виде сабмита формы и сохранение их Repository
    3. Генератор текущего круга
    4. View, который отвечает за генерацию html-разметки круга,
    5. метод контроллера, который может извлечь данные из Repository, скормить их генератору, получить результат и скормить его во View.


    И не факт, что методы из 2 и 5 пункта принадлежат одному классу.
    Ответ написан
    Комментировать
  • Как эффективно перейти на c++ при опыте работе с php?

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

    так это...
    Сейчас хочу попробовать реализовать научный проект.
    Собсно практика - лучший учитель, садитесь и пишите. Если базу уже знаете реализация не станет проблемой. По ходу решения текущих задач проекта познакомитесь со всеми нужными изменениями и практиками, сегодня на любой чих есть дока, туториал, видео и чатжпт. Двух зайцев двумя плюсами, так сказать...
    Ответ написан
    Комментировать
  • Как запустить скачанный PhpStorm в Ubuntu командой phpstorm?

    @Giperoglif
    alias phpstorm='{path to phpstorm}/bin/phpstorm.sh'


    чтобы он был постоянным - добавить в .bashrc домашней директории юзера
    Ответ написан
    Комментировать
  • Не запускается Ubuntu 10.10 на intel 14 поколении?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ставите современную ОС на ваш ПК, далее ставите VirtualBox, а в нём спокойно ставите то, что вам нужно.
    Ответ написан
    Комментировать