• Как уменьшить все блоки сразу?

    hzzzzl
    @hzzzzl
    если всё задать в rem, то размеры будут относительно font-size родительского контейнера (например html)

    Ответ написан
    Комментировать
  • Как разбить массив на части PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    в цикле
    все операции над массивами производятся в цикле
    для перебора массивов в РНР используется оператор foreach
    Ответ написан
    Комментировать
  • После какого класса уходить?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    Тут нет особой разницы. Колледж и институт это всего лишь набор базовых знаний, которые не сделают из тебя полноценного специалиста (как выпускник по информационной безопасности могу заявлять об этом), но заложат хорошую базу.

    Можешь после 9 класса пойти в информационный колледж, например на администрирование или АСОИиУ. Там дадут основы программирования, математику, сети. Это всё хорошие вещи. После этого уже ищи профильный институт
    Ответ написан
    Комментировать
  • Как решить проблему с visited?

    E1ON
    @E1ON
    Programming, Gamedev, VR
    У вас href один и тот же, вот оно и выделяет все
    Ответ написан
    Комментировать
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

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

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


    Похожим на сервис локатор является сервис- или DI-контейнер. Используемый вручную, он является тем же самым сервис локатором. Поэтому вручную его никогда не надо вызывать - что и запрещается в симфоневских конроллерах - а только для автоматического создания классов. В МВЦ у тебя ведь очень многие объекты создаются автоматом - сущности, контроллеры. И вот для того, чтобы при автоматическом создании экземпляра класса у тебя были на руках все требуемые сервисы - и нужен контейнер.

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария
  • Является ли citilink официальным дилером razer?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Спросите у ситилинка или razer
    Ответ написан
    Комментировать
  • Как отобразить пароль в карточки изменения хэшируемый hash в laravel?

    DevMan
    @DevMan
    упарываться по безопасности и давать возможность видеть пароли открытым текстом - противоречащие друг другу задачи на общем уровне.

    на продвинутом уровне это вполне решается шифрованием, если способны обеспечить безопасность ключа.
    но при подобной постановке вопроса в этом есть обоснованные сомнения.
    Ответ написан
    Комментировать
  • Стоит ли одиночке лезть в дебри создания сайтов?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Стоит. Я свои первые сайты в блокноте писал, на голом html, а первый коммерческий заказ примерно также но в Dreamweaver )))
    А с таким подходом мол "все ниши заняты, эх" тебе ни в какой сфере не преуспеть.
    Ответ написан
    7 комментариев
  • Как указать путь к css-файлу при php-include?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Вместо относительного пути к файлу, используй полный.
    Ответ написан
    Комментировать
  • Как сделать свой REST API?

    VlasenkoFedor
    @VlasenkoFedor
    Программист: php, js, go
    index.php
    <?php
    # Author - Fedor Vlasenko, vlasenkofedor@gmail.com
    define('METHOD', $_SERVER['REQUEST_METHOD']);
    define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    
    function router($url, ...$args)
    {
        (empty($args[1]) || false !== strpos(METHOD, $args[0]))
        && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
        && die(call_user_func_array(end($args), $match ?? []));
    }
    
    router('/api/games', 'GET', function () {
        echo 'список игрушек';
    });
    
    router('/api/game/(\d+)', 'GET', function (...$args) {
        echo 'информация о игрушке: ', $args[1];
    });
    
    router('/api/games', 'POST', function () {
        echo 'добавить новую игрушку';
    });
    
    router('/api/games/(\d+)', 'PUT', function (...$args) {
        echo 'обновить существующую игрушку: ', $args[1];
    });
    
    router('/api/games/(\d+)', 'DELETE', function (...$args) {
        echo ' удалить игрушку: ', $args[1];
    });
    
    header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    echo '404';

    далее в консоли запускаем встроенный php сервер
    php -S localhost:8000 index.php
    тестируем и наслаждаемся :-)
    Ответ написан
    2 комментария
  • Какие проекты добавлять на GitHub?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Github в частности и Git вообще это инструмент, а не ч*номерка, поэтому можно дать следующие советы:

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

    - как правильно выложить проект, сделанный на Qt? Просто тупо всю папку проекта скинуть в репозиторий?

    IDE вам поможет, как правило там еть очень хорошая интеграция.

    Впрочем на самом гите есть шаблоны .gitignore для многих типов проектов, просмотрите их и модифицируйте под себя

    - стоит ли выкладывать уже готовую папку с exe'шником без участия Qt, чтобы просто запустить приложение?


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

    Chronicler
    @Chronicler
    Программист
    - стоит ли выкладывать уже готовую папку с exe'шником без участия Qt, чтобы просто запустить приложение?

    Для этого в проекте на GitHub есть специальный раздел Releases, куда можно загрузить исполняемые файлы. Если загружать их в репозиторий с кодом, он может выдавать предупреждения.
    Ответ написан
    1 комментарий
  • Как увидеть post запросы?

    DevMan
    @DevMan
    если их нет в девтулз, значит это не классический post-запрос, или вы не там смотрите.
    вангую: вебсокеты.
    Ответ написан
    1 комментарий
  • Почему не работает перебор объекта JS?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Этот метод позволяет точно добавлять или изменять свойства объекта. Обычное добавление свойств через присваивание создаёт свойства, которые можно увидеть через перечисление свойств (с помощью цикла for...in или метода Object.keys), чьи значения могут быть изменены и которые могут быть удалены. Этот же метод позволяет настроить эти дополнительные детали свойства.
    ...
    enumerable
    Равен true только в том случае, если это свойство можно увидеть через перечисление свойств содержащего его объекта.
    Значение по умолчанию установлено в false.


    таким образом вам надо делать так
    Object.defineProperty(obj, 'test', {value: 1, enumerable: true}); 
    Object.defineProperty(obj, 'test2', {value: 1, enumerable: true});
    Ответ написан
    3 комментария
  • Попинайте. Работодатель сказал, что у меня код PHP устаревший. В чем именно проблемы?

    php666
    @php666
    PHP-макака
    die ( mysql_error () );
    последние 10 лет программил
    на зоне программил с отсутствием интернета?

    По факту отстал настолько, что можно смело искать другую работу. Точнее не отстал, а даже не вышел за пределы новичка.

    Правда, ищи другую работу. Тебя просто порвут по скилам молодые мальчики.
    Ответ написан
    Комментировать
  • Попинайте. Работодатель сказал, что у меня код PHP устаревший. В чем именно проблемы?

    Stalker_RED
    @Stalker_RED
    @mysql_query() уже одного этого кусочка хватает для того, чтобы сильно усомниться в скиллах.

    Функция mysql_query устарела более семи лет назад, и в современных версиях языка ее вообще нет.
    Подавление ошибок через @ - вообще шедевр. У вас, значит, запрос с ошибкой, или база упала - но ваш код это просто игнорирует и делает вид, что так и надо. Зашибись :)

    Читайте https://phptherightway.com/
    Ответ написан
    Комментировать