IvanIF, будет то же самое как и при возникновении ошибки в любом другом месте - она попадёт в error_handler, превратится в ErrorException и полетит в ближайший catch блок.
IvanIF, у ErrorException есть поля для хранения имени файла и номера строки, на которой возникла ошибка. По сути ErrorException как раз и придуман для замены обычных ошибок на исключения.
ivanivanov15122021, я наоборот считаю, что нужно начинать с хардкора. Когда меня спрашивают "что бы такое сделать для тренировки на пхп" я всегда отвечаю - "делай cms". Задача максимум. Во-первых её можно делать по частям, во-вторых, в cms есть работа с базой, файлами, регулярками, разработка архитектуры... чего там только нет. Практики будет выше крыши в совершенно разных областях. Ну и я избавлен от дальнейших вопросов "сделал, что дальше?" )). Если человек осилил создание cms, то что делать дальше он уже и так знает сам.
FanatPHP, \Throwable появился в 7.0, а неизвестно какое окружение у тс. Но ок, согласен. Надо приучать людей к современному php. А насчёт throw $e тут ещё вопрос. Может тс сделает обработку ошибки именно здесь.
Александр Панков, не нужно пробрасывать, это делается только для входящих портов (когда трафик извне попадает внутро контейнера). А у вас исходящий порт (из контейнера на ваш комп). В моем ответе указаны все необходимые для достижения результата действия. Не нужно делать ничего дополнительно, сверх того, что я написал.
Что выводит команда docker inspect ваш-контейнер | grep IPAddress?
Выберите другой порт. Например, 9888. Тогда ssh проброс будет выглядеть несколько иначе ssh -R 9003:172.17.0.2:9888 user@vpsaddr и xdebug.client_port = 9888. На стороне phpstorm изменения не требуются, так как ssh будет пробрасывать коннекты на ваш локальный порт 9003.
Сергей Водаков, Брюс молодец. Написал хорошую книгу с правильными идеями. Одну из немногих, которые я советую людям.
Но java изначально содержит в себе billion dollar mistake и ТС никуда от этого не денется. Он просто ещё не понимает всю глубину кроличьей норы нулов и полезность всех этих костылей для противостояния нулам. Поэтому и задаёт вопросы. Между прочим, правильные вопросы как для новичка.
Вариант с Instant (а так же currentTimeMillis и другими методами, возвращающими календарное время) для измерения длительности процессов использовать не рекомендуется. Например, если на хосте между измерениями произошла синхронизация часов по протоколу NTP, то можно получить неадекватно большую или маленькую длительность измеряемого куска кода. А то и отрицательное значение. А если на основе данного числа принимаются какие-либо решения (например, в паттерне circuit breaker), то можно получить сбой на ровном месте.
Иван Иванов, 10-15 - это совсем мало. Мне удавалось сделать 500 параллельных запросов (через guzzle) на машине гораздо более скромной, чем ваша. Вы скорее упретесь в ограничения на стороне прокси или сайтов, чем в своё железо.
Никита, имеется ввиду сравнение объектов оператором == вместо Equals(Object). Но иммутабельность сама по себе не даёт такой возможности. Нужно ещё дополнительно обеспечить создание экземпляров вашего иммутабельного класса исключительно через кеширующую фабрику.
john_hack8, можно и линукс. С линуксом даже проще, так как в нём есть openconnect. Это альтернативный опенсорсный VPN клиент для Cisco AnyConnect под линукс. Openconnect поддерживает эту троянскую функцию, но она по умолчанию отключена.
Будет ли ругаться cisco - неизвестно. Зависит от настроек на стороне сервера. Скорее всего проблем не будет.
Если рабочий ПК на windows, значит это RDP протокол. Могу порекомендовать Remmina. Я однажды воспользовался ей, когда требовалось подключиться к windows хосту через RDP.
john_hack8, это не сарказм. Функция называется VPN Posture (HostScan). Изначальный смысл - сканирование вашего компьютера на соответствие стандартам безопасности вашего работодателя. Ну там чтобы антивирус был установлен, обновления ОС были включены и прочее. Программа сканирует систему и отправляет на VPN сервер отчёт. Вот только программа скачивается с VPN сервера работодателя и у вас нет никакого контроля над тем, что именно она делает в вашей системе.