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

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

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

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

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

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

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

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

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

Алексей Скобкин

Гентушник, разработчик на PHP и Symfony.
  • 326
    вклад
  • 18
    вопросов
  • 568
    ответов
  • 27%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Что делать, если Паскаль не рассматривает else?

    xmoonlight
    xmoonlight @xmoonlight
    https://sitecoder.blogspot.com
    9 - это нечётное. Всё верно.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как сделать многошаговую команду бота Telegram?

    Артур @ar2rsoft
    PHP-developer
    Хранить текущее состояние пользователя и во время обработки его запросов отвечать в зависимости от этого состояния, менять его соответственно.

    Погуглите конечные автоматы
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как организовать роутинг внутри Bundle?

    uDenX
    Денис Дерепко @uDenX
    PHP Developer
    https://github.com/symfony/recipes/tree/master/sym...
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как отдебажить http://input? Как отправить себе файл в http://input?

    borisdenis
    Довольный Айтишникъ @borisdenis
    $input_file = fopen( "php://input", 'r' );
    $temp_file  = fopen( $temp_path, 'w' );
    stream_copy_to_stream( $input_file, $temp_file );


    Кто мешает вместо php://input указать путь к сущесвующему файлу и с ним тестить последующие шаги?
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Кто поможет объяснить разницу между данными и переменными?

    Lord_Dantes @Lord_Dantes
    Кто поможет объяснить разницу между данными и переменными?

    Данные — зарегистрированная информация[1]:439; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств.

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

    Или вкратце данные находятся в переменной если они где-то используются. Но и переменную с данными можно назвать данные. Ну вот так вот.

    А описание не читал, к вопросу не относится.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Можно ли в письмо вставить пиксель Метрики и собрать ClientID?

    dollar
    dollar @dollar
    Делай добро и бросай его в воду.
    Нет.
    А если сможете, то вы нашли уязвимость, либо адресат пользуется чем-то очень устаревшим.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Насколько удобен линукс для верстальщика?

    Андрей К @kuftachev
    В Вашем условии нерешаемая проблема - это Photoshop. Но сейчас многие делают дизайн в Figma.

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

    То, что тут написали против Linux, или пробовали его лет 5-10 назад, или просто от кого-то слышали.
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Правда ли что рынок веб разработки "перегрет"?

    OTCloud
    TCloud @OTCloud
    - И как назовемся? Пожиратели пожирателей смерти?
    100% перегрет, но не программистами или веб-мастерами, а индивидами, которые решили что веб это просто и легко и не стоит сильно париться над своими скиллами и знаниями.
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Как создать phpUnit тест для такого класса?

    xEpozZ
    Дмитрий Дерепко @xEpozZ
    Веб-разработчик
    class TestTest {
        public function testGetExact() {
            $str = '*строка для тестирования*';
            $expected = '*посчитанный результат*';
            $this->assertEquals($expected, Test::getExact($str));
        }
    }
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Есть ли возможность накатать абузу на сапорт Hetzner?

    sergey-gornostaev
    Сергей Горностаев @sergey-gornostaev
    Седой и строгий
    Есть такая "бурчательная" соцсеть, на нытьё в которой компании реагируют очень остро - Twitter. На грамотном английском напишите твит о свой проблеме, в котором упомяните @Hetzner_Online и посетуйте на то, что придётся уйти к другому хостеру. Не исключено, что в скором времени вам напишут или реплай или сообщение в директ с обещанием разобраться. Если не откликнутся или таки не разберутся, просто уходите к другому хостеру.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Могут ли меня посадить за мой сайт с сериалами?

    BBmike
    BBmike @BBmike
    Хочу создать сайт с сериалами.Могут ли меня за это посадить?


    Вас могут посадить даже если у Вас нет сайта с сериалами ¯\_(ツ)_/¯
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно будет?

    prototype_denis
    Денис @prototype_denis
    Symfony
    1. Где вам удобнее. Аннотации это всего лишь один из способов хранения конфигурации.

    2. От ситуации. Формам нужна не сущность, а какой-нибудь клас (и то, необязательно), чтобы заммапить данные. И здесь также, как вам удобнее. Например форму для удаления, смело в контроллер, для редактирования в отдельный класс, которую можно переиспользовать.

    3. Холивара вопрос. Видел людей с пеной у рта доказывающих, что всё нужно прописывать в типах, и других, у которых формы с суммарным количеством полей переваливало за 300, где прописаны только поля... Тут также всё от ситуации. Если эта форма будет переиспользоваться, будут разные группы валидации, обработчики будет разные, то имеет смысл оставлять их минимально нагруженными и выносить всё, и наоборот, если форма крайне специфичная, то лучше не размазывать по приложению работу с онной.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как работать с PDO внутри класса?

    FanatPHP
    FanatPHP @FanatPHP
    Чебуратор тега РНР
    Не нужно осваивать всё сразу. У тебя не будет работать тоже все сразу. И ты не будешь знать, что именно.

    Всегда надо решать только одну задачу за раз

    А у тебя тут и ООП, и ПДО, а неймспейсы ,и автолоад, и ни одну из этих вещей ты не понимаешь.

    Собрался писать класс для работы с БД? Отлично, пиши класс для работы с БД. БЕЗ неймспейсов и автолоадов. Не переломишься, добавишь один инклюд. Но зато хотя бы не будешь бегать по коду и искать, в каком из 10 мест у тебя ошибка.

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

    Свой велосипед, чтобы он был хоть на что-то годен и добавлял хоть что-то к оригинальному ПДО, переписываешь так
    class DB
    {
        public $pdo;
    
        public function __construct() {
            $host = "localhost";
            $user = "root";
            $password = "";
            $dbname = "dbtest";
            $charset = "utf8";
            
            $dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
            $this->opt = [
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                PDO::ATTR_EMULATE_PREPARES => FALSE
            ];
            $this->pdo = new PDO($dsn, $user, $password, $opt);
        }
        
        public function query($sql, $args = NULL)
        {
            if (!$args)
            {
                 return $this->pdo->query($sql);
            }
            $stmt = $this->pdo->prepare($sql);
            $stmt->execute($args);
            return $stmt;
        }
        public function __destruct() {
            $pdo = NULL;
        }
    }

    Объяснения по коду (на английском) - Детские болезни моего первого класса для работы с БД

    Дальше.
    Класс Settings не должен наследовать классу БД. Это совершенно разные сущности. Класс человек не должен наследовать классу Карман только потому что у всех людей есть карманы обычно.

    Если человеку нужен карман, то карман передается в конструктор добавляется в свойства класса. Поэтому

    сlass Settings {
        public function __construct($db) {
            this->db = $db;
        }
        public function getSiteName() {
            $stmt = $this->db->query("SELECT Value FROM configs WHERE Name = 'SiteName'");
            return $stmt->fetchColumn();
        }
    }
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Как мне пользоваться облаком (я.диск, dropbox), если некоторые файлы не хотят перебрасываться в него из-за нулевого веса (node_modules/bin)?

    inoise
    Иван Шумов @inoise
    Solution Architect, AWS Certified, Serverless
    Встречный вопрос - зачем вы node_modules выкладывает в облако, если они все-равно там не исполнятся? Подозреваю что вы синхронизируете проект между машинами. Может тогда сразу в git?
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Почему бы не сделать PHP полностью асинхронным?

    kawabanga
    Dmitry Bay @kawabanga
    Вот буквально вчера слушал, советую к ознакомлению
    https://5minphp.ru/episode49/

    Если кратко, то охотясь за асинхронностью php, вы должны мыслить асинхронно и писать свое приложение опираясь на этот факт. При этом вы не выигрываете баснословные секунды.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Kaк защитить файл от слива в интернет?

    stictt @stictt
    просто рак
    Ничего из этого не работает. И ничего не поможет. нет защиты от пиратства. Все существующие методы могут помочь на не большой срок. при условии что ваш вайл не очень кому и нужен.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Чем шифровать и как хранить в БД пароли, которые нужно будет отображать во frontend?

    saboteur_kiev
    Saboteur @saboteur_kiev
    software engineer
    А потому что вся идеология работы с паролями не подразумевает, что они должны храниться и тем более быть видимыми кому-либо.
    Почему вам нужно именно один пароль от ресурса раздавать разным пользователям?
    Почему бы не давать разным пользователям с разными паролями к одному нужному ресурсу?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Регулярные выражения для диапазона IP адресов?

    abyrvalg
    abyrvalg @abyrvalg
    Проверять такие вещи регулярками - в корне неправильно. ИП-адрес - это всего лишь 32-битное целое число. В каждой операционке и почти в каждом языке есть функции для работы с ип-адресами и диапазонами. Пхп не исключение:

    $firstIpAsString = '77.88.0.0';
    $lastIpAsString  = '77.88.0.18';
    $ipAsString      = '77.88.0.111';
    
    $firstIp = ip2long($firstIpAsString);
    $lastIp  = ip2long($lastIpAsString);
    $ip      = ip2long($ipAsString);
    
    var_export([
        'first' => $firstIp,
        'last' => $lastIp,
        'ip' => $ip,
        'in range?' => $firstIp <= $ip && $ip <= $lastIp,
    ], false);
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть у кого инструкция как установить готовый проект symfony на openserver?

    crashxd
    Crash XD @crashxd
    Backend разработчик
    Устанавливаешь через composer. В документации в разделе установки все подробно описано.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как перехватить редирект?

    SilenceOfWinter
    Антон Шаманов @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    у curl есть опция followlocation
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Evgenii
    • 22 ответа
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 6 ответов
    • 0 вопросов
  • Борис Алексеев
    • 5 ответов
    • 0 вопросов
  • work_jabir
    Джабир
    • 5 ответов
    • 0 вопросов
  • hint000
    hint000
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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