➳ Предыстория этого блога ❂ ↑
Итак, наконец-то добрался до пробы мультиблогового движка, на котором сделан этот сайт, здесь есть еще много всего, сервис "вопросы и ответы", каталог ресурсов, но мне пока что нужно проверить как работает блог. Несмотря на множество возможностей движка, оказалось, что страницы грузятся довольно быстро, и последнее мне приятно видеть (далее будет ясно, почему). Теперь же посмотрим, на что...
Обработка ошибок и исключений в PHP
После выхода PHP 7 механизм встроенных ошибок был сильно изменён и теперь представляет собой разделение на классы Error (Фатальная ошибка) и Exception (Исключение). Первый содержит перечень унаследованных от него типизированных классов для фатальных ошибок PHP, а Exception должен содержать исключения с возможностью обработки, которые будут от него унаследованы. Вместе эти два основных класса объединены интерфейсом Throwable, соответственно и...

Использование замыканий в PHP
Замыкание в PHP - это способность анонимной функции взаимодействовать с её окружением. То есть переменные из контекста замыкания могут быть использованы внутри функции.
Анонимная функция - это обычная функция не имеющая названия. Может быть присвоена переменной и не только, также может быть возвращаемым результатом функции или метода, аналогично экземпляру внутреннего класса Closure, которым представлена.
Пример обычной...
Какие процессы происходят после ввода URL в браузере
Когда пользователь вводит URL в браузере, происходит следующая последовательность процессов:
-
Парсинг URL: Браузер анализирует введенный URL, чтобы выделить протокол, доменное имя и путь к ресурсу.
-
DNS-поиск: Браузер отправляет запрос к DNS-серверу для получения IP-адреса, связанного с доменным именем. DNS-сервер возвращает IP-адрес браузеру.
-
Установка TCP-соединения: Браузер устанавливает TCP-соединение с веб-сервером, используя...
Вы еще не зарегистрировались? Войти
Шпаргалка по REST - стиле разработки веб-сервисов
REST, или Representational State Transfer, это архитектурный стиль для разработки веб-сервисов. Он основан на нескольких принципах, что делает его простым, масштабируемым и гибким для создания и использования веб-сервисов.
REST использует стандартные HTTP-методы, такие как GET, POST, PUT и DELETE, для взаимодействия между клиентом и сервером. Каждая операция выполняется на определенном ресурсе, которому обычно соответствует определенный URL.
REST подчеркивает...
Для чего нужен humans.txt?
По аналогии с robots.txt имеет место существовать humans.txt файл. Самый известный - это конечно файл humans.txt от Google. Его содержимое - обычный текст, который содержит краткую информацию о команде компании и ссылку на вакансии. Идея такого файла, и даже уже сформировавшегося вокруг него целого движения, в том, чтобы показать, что Интернет существует в первую очередь для людей. При этом изначально это был произвольный текст...
Отчет по подготовке версии HLEB 2.0
Оказалось, что написание новой версии фреймворка не самое главное, большую часть работы занимает написание тестов на все его функции и составление документации. Кроме этого, из-за изменений в ядре фреймворка, необходимо сделать новые версии всех его собственных библиотек. Мне бы не хотелось, чтобы его возможности оказались урезанными по сравнению с предыдущей версией, поэтому будет и обновление библиотек. Возможно, что 70% от всей...
Для чего нужны кофе и плюшки в вакансиях
Сейчас модно завлекать на работу в IT всевозможными бонусами. Их перечень невелик и по их наличию можно судить, что работодатель ожидает взамен. К слову, собственная практика показала, что работать в отсутствии всяких обещанных бонусов гораздо удобнее, вот работа, вот зарплата, всё просто. Иные обязательства от сторон вносят некоторую неразбериху в отношения с работодателем. При этом допускаю, что может быть и иная трактовка, но с...
Генеративная модель Web 3.0
Так может выглядеть поисковая страница Google в ближайшем будущем, в таком виде её уже видит часть пользователей в качестве эксперимента.
По всей видимости, контент будет полностью обезличен, нет привычной связи с сайтом, откуда информация взята, чтобы можно было перейти и составить собой часть его трафика. Информационные ресурсы могут пострадать в первую очередь или просто измениться до...
Для чего нужны атрибуты в PHP
Атрибуты вида #[CustomAttribute]
добавлены в PHP 8.0 (RFC, Документация)
Атрибуты предоставляют возможность добавлять различную конфигурацию к конкретным классам, методам, константам класса и тд. При этом, пока вы не начнёте обращаться к этой конфигурации, выполнение PHP никак её не воспринимает, как и обычные комментарии. Через рефлексию можно запросить атрибут конкретного класса/метода и...
Распространенные «детские» ошибки на сайтах и причины их возникновения
Когда пользователь заходит первый раз на сайт, он судит его по "одёжке", то есть внешнему виду и дизайну. А первое впечатление о работоспособности складывается обычно при регистрации, если там что-то пошло не так, то это может сильно подорвать дальнейшее доверие к ресурсу.
Распространенной ошибкой разработчиков и самой банальной является неправильное предоставление пользователю...
Вместо отчёта по фреймворку HLEB 2
Вышел отчёт по фреймворку Yii2 на Хабре https://habr.com/ru/articles/737662/ Так получилось, что разбираясь с RoadRunner и другими вещами, залезал в репозитории Yii3 в том числе и попутно отправил несколько пулл-реквестов, заметив неточности, и в итоге теперь мои имя и фамилия оказались в списке благодарностей разработчикам Yii) Это приятно видеть и вместо отчета по своему фреймворку могу сказать, что процесс идёт и такие вот штуки - побочные его...

PHP функция compact()
Довольно редко используемая функция compact() в узкоспециальных случаях значительно упрощает код. В некоторых фреймворках при отображении шаблона (так можно сделать в Laravel, например), если совместить её с передачей параметров, получится так.
Неоптимизированный код:
return view('template', [
'x' => $x,
'y' => $y,
]);
Оптимизированный при помощи compact():
return view('template', compact('x', 'y'));
Как видно из примера, функция compact из существующих переменных собирает соответствующий массив данных, где название переменной соответствует её значению.
Подробнее в документации
Самый ужасный код, который когда либо встречал
Когда мне говорят, что нужно рефакторить какой-то плохой участок кода, мне интересно, насколько сильно он подходит под определение мной однажды виденного и ставшего образцом, скажем так совершенного и идеально ужасного кода. Этот образчик наблюдал в средней известности компании и проекте, последний в своём роде был очень даже ничего по популярности. Но секрет его популярности был в том, что он один из первых занял нишу и в ней...