Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
27cm

Котик Антон

TODO: Написать статус
  • 1009
    вклад
  • 50
    вопросов
  • 724
    ответа
  • 63%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Нужно ли использовать if в Controller?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Если какие-то данные не будут использоваться во view, то не надо их туда и передавать. Это может сэкономить оперативную память. Даст ли это какой-то ощутимый эффект в вашем случае, можно проверить функцией memory_get_usage().
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как из класса в 1 строку вызвать 2 функции?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Пример 1
    class A
    {
        public function lol($params) {
            // ...
            return $this;
        }
    
        public function kek($params) {
            // ...
            return $this;
        }
    }


    Пример 2
    class A
    {
        public function lol($params) {
            $b = new B();
            // ...
            return $b;
        }
    }
    
    class B
    {
        public function kek($params) {
            // ...
        }
    }


    В обоих случаях сможете писать такую цепочку:
    $a = new A();
    $a->lol('params')->kek('cheburek');
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как правильно организовать работу в команде?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Если используете GitHub / GitLab, то вот простая схема:
    https://guides.github.com/introduction/flow/

    На русском: https://habr.com/ru/post/346066/
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как написать простой тест с вариантами ответа на php?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Ну раз поставлено задание — делай! Вопрос-то конкретно в чем?
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Как правильно организовать rest api пагинацию?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    В MySQL есть FOUND_ROWS()
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Код в парадигме ООП PHP?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Вообще мимо.

    Для начала надо сделать код рабочим. Некоторые вещи вроде class Article() { ... } и function find_by_user($user_id == nuul) написаны с ошибками.

    Потом читаем про конструкторы, про private/protected/public, забываем про var.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Вопросы по платежному агрегатору QIWI (ISHOP)?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Интегрироваться с qiwi ishop не сложно. SSL сертификат не нужен.
    https://static.qiwi.com/ru/doc/ishop/protocols/Onl...

    Будут ли они работать с сайтом, где по сути приобретается не товар, а доступ к узлу сайта?

    Делали оплату счета в qiwi за пользование сервисом, проблем не было.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как научить PhpStorm понимать, что поля и методы используются динамически?

    27cm
    Котик Антон @27cm Автор вопроса
    TODO: Написать статус
    Вариант 1. Перечислить все свойства в @see комментарии
    <?php
    
    class Example {
        public $property1;
        public $property2;
        public $property3;
    }
    
    $obj = new Example();
    
    /** @see Example::property1 */
    /** @see Example::property2 */
    /** @see Example::property3 */
    $name = 'property' . rand(1, 3);
    $obj->{$name} = 'value';


    Вариант 2. Использовать функцию, которая ничего не делает.
    <?php
    
    function ide_usage(...$args) {
        // Функция ничего не делает, используется для тех редких случаев,
        // когда нужно показать IDE, что тут неявно используется переменная, свойство или метод
    }
    
    class Example {
        public $property1;
        public $property2;
        public $property3;
    }
    
    $obj = new Example();
    
    ide_usage($obj->property1, $obj->property2, $obj->property3);
    
    $name = 'property' . rand(1, 3);
    $obj->{$name} = 'value';
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как работать в PHP с числами вида 5.8E-7?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Такой вариант явно не правильный

    Почему же? https://3v4l.org/Kgdia

    Если хотите избежать проблем с плавающей запятой, можно использовать BC Math:
    php.net/manual/ru/book.bc.php
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как в двумерном массива первое значение в строке сделать ключом?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Если оставить id в строках, то можно вот так:
    $result = array_combine(array_column($rows2, 'id'), $rows2);


    Но если очень надо убрать:
    $result = array_combine(array_column($rows2, 'id'), $rows2);
    foreach (array_keys($result) as $id) {
        unset($result[$id]['id']);
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Уязвимость, что делать?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    То же, что и любая другая компания, узнавшая о том, что у них воруют: закроют уязвимость и/или обратятся в суд.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Стоит ли учится писать unit тесты сейчас, если да, то стоит ли использовать библиотеки для тестирования?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Стоит ли писать тесты, используя библиотеки?
    Да

    Стоит ли использовать библиотеку или все таки PHPUnit лучше?
    PHPUnit или Codeception
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Правильно ли покрывать каждый параметр JSON REST api тестами?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    1) Нормально ли это при ручном тестировании? Если нет, то как лучше ограничить? К сожалению, выбор тут зависит не от меня.

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

    2) Нормально ли это при автоматизированном тестировании?

    Да. В автотестах, как правило, проверяют все возможные ошибки.

    3) Не упустил ли я чего то?

    Тесты можно писать бесконечно, это опять же зависит от требований заказчика и сроков. Можно проверить отправку невалидного JSON-а, отправку запросов с некорректным HTTP методом: GET, POST, HEAD, PATCH... и т. д.

    Не стоит ограничиваться только сценариями на проверку ошибок. В зависимости от разных комбинаций входных параметров в API может быть реализовано разное поведение. Желательно проверить все принципиально разные успешные сценарии. Например, если в API есть boolean параметр, то необходимо проверить поведение при значении true и значении false.

    2) Нужно ли тестировать каждое обязательное поле по отдельности?

    В идеале да. На практике так мало кто делает, тем более при ручном тестировании, особенно если параметров очень много. Как правило хорошее API в ответе всегда сообщает какие из обязательных полей не указаны, их список и проверяют в ответах. Проверяют три случая: все обязательные поля не указаны в запросе, пара-тройка обязательных полей не указаны, все обязательные поля указаны в запросе.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • PHP. Как распарсить PHP файл?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Есть встроенная функция token_get_all(), которая позволяет распарсить PHP файл на токены:
    php.net/manual/en/function.token-get-all.php

    Пример: https://3v4l.org/em0It
    Коды токенов: php.net/manual/en/tokens.php
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как выглядит "прокачанный" аккаунт ГитХаб?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Примеры:
    https://github.com/pepelsbey
    https://github.com/Samdark
    https://github.com/mdo

    Как заинтересовать работодателя:
    1. Аватарка. Да, она должна быть. Ещё лучше, если это будет ваша фотография. Если видишь в профиле дефолтную аватарку, возникает ощущение, что GitHub у человека всего лишь для галочки.
    2. Контактный email.
    3. Полоска активности должна быть зеленой (см. примеры выше), но в меру — не нужно стремиться окрасить каждую клеточку, отдыхать тоже нужно. Если заходишь в профиль, а салатовые клеточки изредка были год назад или наоборот появились только две недели назад, то страница работодателя не заинтересует.
    4. Ссылка на персональный сайт.
    5. Наличие собственных public репозиториев. Работодатель хочет увидеть ваш код, поэтому очень желательно наличие в них свежих коммитов. Каким должен быть отличный репозиторий на GitHub — тема для отдельного вопроса, тут напишу кратко: README, понятная структура, тесты, звезды.
    6. Наличие вклада в Open Source проекты. Мне доводилось встречать профили, в которых были выполнены все пункты выше, но тем не менее их владельцы были очень слабыми разработчиками. Наличие вклада в крупные проекты с открытым исходным кодом — это однозначно вин. Очень желательно, чтобы он у вас был.
    7. Stars, Followers, Following. Всё это тоже было бы неплохо завести. Если у вас много фолловеров на GitHub, значит скорее всего вы из себя что-то представляете в мире Open Source, раз другим интересно следить за вами.

    P.S.: Хороший профиль на github сам может выступать в роли резюме. Очень часто хедхантеры через него и выходят на тебя.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Кнопка вызова команды telnet на php?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Вариант 1
    <form action="/тут/ссылка/на/скрипт.php">
        <button type="submit">Кнопка</button>
    </form>


    Вариант 2
    <a href="/тут/ссылка/на/скрипт.php">Кнопка</a>
    Дальше ссылку уже можно превращать в кнопку с помощью CSS.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Вложить друг в друга елементы массива?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Можно рекурсией: https://3v4l.org/m5Cup
    <?php
    
    $input = ['dir2', 'dir2_1', 'dir2_1_1'];
    
    function convert_array(array $input, array $output = []) {
        if (empty($input)) {
            return $output;
        }
        
        $value = array_pop($input);
        
        return convert_array($input, [$value => $output]);
    }
    
    var_dump(convert_array($input));


    Можно и без рекурсии: https://3v4l.org/4FuZ4
    <?php
    
    $input = ['dir2', 'dir2_1', 'dir2_1_1'];
    
    $output = [];
    foreach (array_reverse($input) as $value) {
        $output = [$value => $output];
    }
    
    var_dump($output);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Какие есть тайм пикеры?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    timepicker.co
    https://mobiscroll.com/mobile-date-and-time-picker
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сверстать эти столбцы с bootstrap или обычным css?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Сделайте две колонки: в левой колонке будут красный и синий блоки, правой — все остальные. Тогда при растяжении зеленый блок не будет влиять на левую колонку. Сейчас вы верстали строками поэтому зеленый блок расширяет свою строку, а нужно сверстать колонками.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как создаются UI Kits?

    27cm
    Котик Антон @27cm
    TODO: Написать статус
    Как создать собственный UI-кит
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Drno
    • 15 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 7 ответов
    • 0 вопросов
  • sergey-kuznetsov
    Сергей Кузнецов
    • 6 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 6 ответов
    • 0 вопросов
  • mordo445
    • 5 ответов
    • 0 вопросов
  • Роми
    • 3 ответа
    • 2 вопроса
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации