В этом посте мы поговорим об unset() в PHP и о фимозных личностях, которых можно встретить на собеседованиях. Поговорим о том, почему unset() в PHP по свой производительности аналогичен присваиванию переменной нового значения. Собеседования 2022 года, главным образом, запомнились мне прекрасными "техлидами" и "архитекторомаи" борющимися за микро-производительность в проектах построенных на фреймворках вроде Симфони... Дважды в собеседованиях мне встретилась просьба проанализировать код на проблемы, среди прочего в этом коде был unset() [удаляет переданную переменную]. Когда я никак не реагировал...
Заметки разработчика
Первые пробы Хабр Экспертов
Некоторое время назад на ХабрКарьере появились эксперты. Сам Хабр пишет, что все пока что сыро, но это не сыро, это вообще никак, ну а это обзор на это никак (и старческое гудение) Пока, с первого взгляда, главная проблема - это Эксперты-не-эксперты. Я о прекрасных личностях, взявших на себя статус "Эксперта", но не отвечающих на попытку связаться с ними. Для проверки, "как все это работает", я написал десятку бесплатных экспертов, в результате получил ответ только от двоих. Остальные или прочли и никак не отреагировали, вообще никак, или даже не зашли в свой аккаунт на Хабре, что бы прочесть, что смиренный желатель общения с экспертом хотел от них...
Почему JWT вам не нужен [а может и нужен]
Это философский пост про JWT, обычно используемые при авторизации, архитектуру вашего кода и собеседования. Это мысли о том, как JWT может замедлить маленький кусочек вашего кода в несколько раз при этом почти не дав ничего вам взамен. Если вы в танке, то что такое JWT можно прочитать тут: https://habr.com/ru/post/340146/ Итак, JWT - это набор подписанных данных, обычно используемых для авторизации. Так как обычно JWT это история из мира авторизации, он содержит ID пользователя, возможно время жизни токена, список приложений/действия для которых он выписан. Также JWT содержит в себе указание на имя алгоритма с помощью которого создавался хэш для проверки валидности токена...
Перечисления из PHP 8.1 в PHP 7.4
Выгрузил в общий доступ библиотеку созданную в 2022 году для облегчения переезда с PHP 7.4 на PHP 8.1, среди прочего позволяет в 7-ой версии использовать перечисления максимально похожие на перечисления в 8.1 Спасибо разработчикам PHP, перечисления - это разновидность классов (финальных классов). Единственное синтаксическое нововведение - определение вариантов перечислений и вызов этих вариантов. Благодаря тому, что перечисления классы - можно создать класс-перечисление в любой версии PHP, главное при этом, просто повторить набор публично доступных методов и свойств...
Как создать мок-класс (тестовый двойник) для final class в PhpUnit
Если коротко никак! Но, используя библиотеку PhpMocker - очень даже легко)) Причина возникновения проблем с созданием тестовых двойников финальных классов в PhpUnit связана с тем, что все мок-классы созданные им, создаются с помощью наследования. А как известно, создать наследника для финального класса просто невозможно, вот поэтому PhpUnit и терпит фиаско. PhpMocker может создавать мок-классы как с помощью наследования, так и с помощью изменения PHP кода в момент загрузки класса. И Именно благодаря этому для него нет проблем в создании тестовых двойников для финальных классов (а значит и для...
Популярны косяк даты публикации
Это пост опять про косяки интерфейса Яндекс Дзена. Но на этот раз о безвредном косяке. Вчера я публиковал пост с реальной проблемами интерфейса Яндекс.Дзена - Кто виноват в косяках загрузки больших аватарок в Яндекс Дзене. Сегодня пост продолжение, об уже несерьезном баге. Очень часто в интерфейсах листингов материалов (например лент постов) выводится дата или "возраст" материала. В случае вывода возраста часто вешается JavaScript, который сравнивает дату публикации с датой на устройстве и выводит...
