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

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

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

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

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

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

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

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

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

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

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

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    • Может что-то не так быть с роутингом.
    • У хостера может быть заблокирован SMTP
    • У mail.ru может быть заблокирован диапазон IP обслуживающийся вашим хостером
    • У вас в файрволе может быть заблокирован такой исходящий трафик

    Это только часть потенциально возможных проблем.

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

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Обратите внимание на ответ Рональд Макдональд.

    Но если ОЧЕНЬ хочется, то посмотрите тут: https://www.oo-software.com/en/shutup10
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Линукс на андроид?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Смотрите в сторону PostmarketOS. Если в списке поддерживаемых устройств нет вашего - ваши шансы получить юзабельный Linux на смартфоне стремятся к нулю (есть редкие исключения, но в общем случае их рассматривать не стоит).
    Можете ещё на 4PDA и XDA по данной модели заглянуть, но скорее всего, там ничего не будет потому, что как сказано в другом ответе, есть проблемы с драйверами и фирмварью, которые часто распространяются в закрытом виде.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • С чего начать изучение темы разработки плагинов и расширений для браузера Firefox Quantum(для не особо знающих английский)?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Я бы предложил начать с подтягивания английского. Без шуток. Сейчас у вас нет перевода для документации по браузерному API. Потом перевода не будет по другому предмету. А там, где перевод найдётся, он обычно не актуален или содержит спорные решения, неудачные термины и другие ошибки.

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

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Можно использовать expressions: https://symfony.com/doc/current/service_container/...

    А можно подсмотреть как у Symfony сервисы подменяются в зависимости от того какая среда (EventDispatcher, контейнер, etc).
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как скачать содержимое git репозитория?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Возможно.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно назвать сервис в Symfony для вызова в разных местах?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Что такое "не работает"?
    Ну и вы же сами в примерах выше выключили автовайринг. Например, тут:
    TwoBuilder:
        public: true
        ###
        autowire: false
        ###
        class: App\Builder\BuilderBase
        arguments:
          $file: '%kernel.project_dir%/public/files/two.xml'
          $mapping: '%two.mapping%'

    Я, конечно, могу ошибаться, но подстановка аргументов по именам - это, вроде как, часть автовайринга.

    Благодарю за ответ, но все равно такая же ошибка :С

    Ещё есть мысль, что, скорее всего, ваши сервисы FirstBuilder и TwoBilder (правильно: SecondBilder) конфигурируются правильно (если опустить потенциальную проблему с передачей по именам без автовайринга), а ошибка конфигурации возникает именно с сервисом App\Builder\BuilderBase. Обратите внимание, что я имею в виду не класс, а именно ID сервиса. То есть, по факту у вас есть ручная конфигурация двух "виртуальных", если так выразиться сервисов и одна конфигурация дефолтного представления сервиса, которая создаётся автоматически (т.к. автовайринг и автоконфигурация включены глобально, чего вы не показали в вопросе, кстати).

    Иными словами:
    - Сервис FirstBuilder - валиден и конфигурируется нормально
    - Сервис TwoBuilder - валиден и конфигурируется нормально
    - Сервис App\Builder\BuilderBase - пытается конфигурироваться автоматически, но не может, т.к. для скалярных аргументов, массивов и всего прочего, что не сервис нужны либо биндинги дефолтных значений (см. services._defaults.bind)? Либо явная передача аргументов в написанном вами блоке конфигурации.

    Так что вам, наверное, правильнее будет чтобы не выключать автовайринг глобально сделать один билдер дефолтным с ID сервиса App\Builder\BuilderBase дабы система не пыталась сконфигурировать ещё один сервис под этот класс, а второй билдер уже называть как вам угодно.

    Вывод:
    Читать про нововведения в DI после 3.3 (а лучше и про более поздние), осмыслять, рефакторить конфигурацию.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какие есть бюджетные сервисы, которые можно использовать для хранения данных (>= 1 ТБ)?

    skobkin
    Алексей Скобкин @skobkin Автор вопроса
    Гентушник, разработчик на PHP и Symfony.
    От себя добавлю, что для холодного хранилища нашлось очень интересное по стоимости решение от Online.net: C14.
    А для быстрого сетевого стореджа всё по-прежнему.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему нет подключения к веб сокетам?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    var conn = new WebSocket('wss://site.ex/8777');
    А вы уверены, что порт нужно указывать именно так?
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как отключить телеграмм при включенном интернете?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    В Lineage OS можно, например, запретить фоновую работу. Тогда пока вы не откроете Telegram, он работать не будет.
    Ещё есть варианты с "файрволами". Часть работают как VPN и не требуют рутовых прав, часть наоборот требуют root и не создают виртуальный VPN.
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как корректно перенести БД на gitHub?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если нужно завести структуру и немножко базовых данных - могут помочь миграции и фикстуры.
    Если нужно залить огромную кучу данных - тогда уже проще дамп.
    Автоматизировать разворачивание можно с помощью Docker Compose.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как контролировать статус выполнения консольной команды в Symfony?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Команду вы никак не "дёрнете". Но вы можете хранить её статус в каком-нибудь доступном вебу хранилище - например, Redis.
    А если нужно совсем реалтайм - можно через очереди (RabbitMQ, beanstalkd) посылать из команды сообщения серверу вебсокета, который будет уже отдавать статус на фронтенд.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какие подводные камни в работе парсера торрент-трекеров?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Ответ несколько не по вашему вопросу, но если задача стоит в индексации содержимого торрентов, то возможно эффективнее будет индексировать DHT как делают, например, magnetico и прочие проекты (есть и на node.js).
    Правда, если задача именно в парсинке описаний к раздачам - тогда да, трекеры нужны. Но это кучу проблем создаёт.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • PHP NODEJS откуда такая ощутимая разница в скорости работы?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    А вы сравнивали код на node.js с кодом на PHP в стиле request-response-death или Event Loop?
    Потому что в node.js-то у вас, скорее всего, код был написан по другой парадигме.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Скрипт онлайн-читалки, где взять?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Можно использовать сервис типа: omnireader.ru
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Зависание Linux без причины?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Запустите где-нибудь на втором мониторе или во всегда открытом терминале что-нибудь типа
    journalctl -b -k -f
    И посмотрите, что там появилось во время зависания. Скорее всего, у вас паника ядра.

    Можно ещё с помощью того же journalctl попробовать посмотреть логи предыдущего сеанса, но там на диск может и не попасть самое важное.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Доступ в сетевую папку со Smart TV, возможен ли без DLNA?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Без использования DLNA можно использовать ещё всякие медиасерверы типа Emby/Plex.
    А любое другое "напрямую" - это в каком-то смысле так же не напрямую, а через SMB/CIFS, HTTP или любой другой протокол.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как описывать сущности для другой базы?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    У Symfony есть документация на эту тему: https://symfony.com/doc/current/doctrine/multiple_...

    А пример из реальной жизни можете посмотреть, например, у меня в этом мини-проекте. Там PostgreSQL и SQLite одновременно работают.
    Внимание стоит обращать на config/packages/doctrine.yaml. Это, само собой, для заранее известных соединений.
    Ну и для сущностей из каждой базы использовать свой EntityManager. Это в любом случае - не зависимо от того определены заранее или в рантайме подключения.
    и сразу же ловлю ошибку что такой таблицы не существует в этой базе данных

    Скорее всего, не тот EntityManager используете либо не с тем соединением его создаёте.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как работать с PDO внутри класса?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    У вас внутри конструктора есть вот эта строчка:
    $pdo = new PDO($this->dsn, $this->user, $this->password, $this->opt);

    Здесь создаётся переменная $pdo находящаяся исключительно в скоупе самого конструктора и после того как завершается его выполнение, сборщик мусора уничтожает объект, который вы создали.

    В методе SELECT:
    public function SELECT($Query) {
            $stmt = $pdo->query("$Query");
        }

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

    Вам нужно:
    1. Создать свойство, в котором будет храниться после инициализации в конструкторе объект PDO у вашего недоабстрактного класса DB
    2. В методе SELECT обращаться к этому объекту как к $this->pdo (или как вы его назовёте)


    Почитайте про скоупы переменных. А ещё про ООП и области видимости. И не лепите protected для всего, что под руку попадётся. Вполне вероятно, что в наследниках вам нужен доступ только к SELECT(), а свойство содержащее объект PDO и остальные не нужны. В этом плане можете ещё про deffensive programming (пример).

    P.S. Вам, кстати, эта толпа свойств dsn, user, password, opt и прочие, скорее всего не нужны после инициализации PDO. Вполне вероятно, что можно их не сохранять вообще.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как сформировать XML в SOAP на PHP?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    https://www.php.net/manual/en/simplexmlelement.add...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 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
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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