📋 Переполнение буфера в Laravel: Причины, профилактика и исправления
Buffer Overflow — это серьёзная уязвимость, при которой избыточные данные переписывают область памяти, что может привести к сбоям, выполнению вредоносного кода и даже захвату системы злоумышленником. Несмотря на то, что Laravel работает на PHP, который управляет памятью автоматически, ошибки в коде могут привести к таким атакам.
Причины возникновения Buffer Overflow в Laravel
Основные факторы, которые могут привести к этой уязвимости:
🔸недостаточная проверка пользовательских данных;
🔸отсутствие ограничений на размер вводимых данных;
🔸некорректная обработка загрузки файлов;
🔸использование потенциально опасных функций, таких как
👉Читать подробнее
Buffer Overflow — это серьёзная уязвимость, при которой избыточные данные переписывают область памяти, что может привести к сбоям, выполнению вредоносного кода и даже захвату системы злоумышленником. Несмотря на то, что Laravel работает на PHP, который управляет памятью автоматически, ошибки в коде могут привести к таким атакам.
Причины возникновения Buffer Overflow в Laravel
Основные факторы, которые могут привести к этой уязвимости:
🔸недостаточная проверка пользовательских данных;
🔸отсутствие ограничений на размер вводимых данных;
🔸некорректная обработка загрузки файлов;
🔸использование потенциально опасных функций, таких как
unserialize()
.👉Читать подробнее
😁5🌚1
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #PHPdevjob
Вакансии PHP разработчиков уровня Junior
▪️ PHP-программист
Офис (Балашиха), КОЛЕСО.ру
▪️ PHP-программист
Удалёнка, TRINFI DIGITAL
Вакансии PHP разработчиков уровня Middle
▪️ PHP Developer
Гибрид (Санкт-Петербург), ЮДС Медиа
▪️ PHP-разработчик
Офис (Санкт-Петербург), NewGen Vision
Вакансии PHP разработчиков уровня Senior
▪️ PHP-разработчик
Офис (Барнаул) / Удалёнка, Sveak
▪️ PHP-разработчик
Удалёнка, РОСОСМОТР
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии PHP разработчиков уровня Junior
▪️ PHP-программист
Офис (Балашиха), КОЛЕСО.ру
▪️ PHP-программист
Удалёнка, TRINFI DIGITAL
Вакансии PHP разработчиков уровня Middle
▪️ PHP Developer
Гибрид (Санкт-Петербург), ЮДС Медиа
▪️ PHP-разработчик
Офис (Санкт-Петербург), NewGen Vision
Вакансии PHP разработчиков уровня Senior
▪️ PHP-разработчик
Офис (Барнаул) / Удалёнка, Sveak
▪️ PHP-разработчик
Удалёнка, РОСОСМОТР
Понравились вакансии?
❤️ — да
🤔 — нет
balashiha.hh.ru
Вакансия PHP-программист (Junior) в Балашихе (Московская область), работа в компании Колесо.ру (вакансия в архиве c 28 февраля…
Зарплата: не указана. Балашиха (Московская область). Требуемый опыт: 1–3 года. Полная. Дата публикации: 11.02.2025.
❤3
Какую из следующих функций следует использовать, чтобы найти родительский класс класса?
Anonymous Quiz
53%
get_parent_class()
20%
parent_class()
8%
class_parent()
18%
get_class_parent()
😁12🥱1
🌊 Wave — стартер-пак для разработки SaaS-приложений
Библиотека написана на Laravel и включает все необходимое:
— аутентификация,
— профили пользователей,
— биллинг,
— подписка,
— роли и права доступа,
— уведомления и административная панель.
Инструмент упрощает создание SaaS-приложений, предоставляя необходимые базовые компоненты и гибкие возможности для дальнейшей настройки.
💻 GitHub
Библиотека написана на Laravel и включает все необходимое:
— аутентификация,
— профили пользователей,
— биллинг,
— подписка,
— роли и права доступа,
— уведомления и административная панель.
Инструмент упрощает создание SaaS-приложений, предоставляя необходимые базовые компоненты и гибкие возможности для дальнейшей настройки.
💻 GitHub
❤1🤔1👾1
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Как использовать коллекции в Laravel?
В Laravel коллекции обеспечивают плавный и удобный способ работы с массивами данных. Они более мощные и выразительные, чем простые массивы PHP, предлагая различные методы для фильтрации, отображения, преобразования и уменьшения данных. Вот как вы можете использовать коллекции в Laravel:
Создание коллекций: Вы можете создавать коллекции, используя вспомогательную функцию
Манипуляция с коллекциями: После того как у вас есть коллекция, вы можете использовать широкий спектр методов для манипуляции данными:
И многие другие...
Цепочка методов: Вы можете соединять несколько методов вместе, чтобы выполнять сложные операции в одной строке.
В Laravel коллекции обеспечивают плавный и удобный способ работы с массивами данных. Они более мощные и выразительные, чем простые массивы PHP, предлагая различные методы для фильтрации, отображения, преобразования и уменьшения данных. Вот как вы можете использовать коллекции в Laravel:
Создание коллекций: Вы можете создавать коллекции, используя вспомогательную функцию
collect
, передавая массив или объект, реализующий интерфейс IteratorAggregate
:$collection = collect([1, 2, 3, 4, 5]);
Манипуляция с коллекциями: После того как у вас есть коллекция, вы можете использовать широкий спектр методов для манипуляции данными:
map()
: Преобразует каждый элемент в коллекции.filter()
: Фильтрует элементы на основе функции обратного вызова.reduce()
: Сводит коллекцию к единственному значению с использованием функции обратного вызова.pluck()
: Извлекает список конкретных атрибутов из каждого элемента.sortBy()
: Сортирует коллекцию по указанному ключу.groupBy()
: Группирует коллекцию по указанному ключу.slice()
: Извлекает часть коллекции.И многие другие...
Цепочка методов: Вы можете соединять несколько методов вместе, чтобы выполнять сложные операции в одной строке.
👍4❤2😁1
🪤 Избегите ловушки Enum в Laravel
В Laravel использование enum (перечислений) помогает задать фиксированный набор значений, например, для статусов, ролей или категорий. Применение enum в качестве типа данных позволяет строго контролировать значения при работе с базой данных, что делает код чище и уменьшает вероятность ошибок. Однако с ростом проекта и изменением бизнес-логики этот подход может привести к проблемам, особенно в системах с легаси-кодом.
В идеале разработка начинается с чистой базы данных, которая настраивается под текущие задачи. Это позволяет создавать точные тесты и корректировать их при появлении новых сценариев. Однако в реальных условиях проекты редко остаются неизменными: добавляются новые значения enum, старые устаревают, а данные в базе продолжают храниться. Если удалить устаревший enum из кода, но оставить его в базе, Laravel может выдать ошибку, так как значение больше не соответствует ожидаемому набору.
📌 Основные сложности при использовании enum-кастинга в Laravel:
🔸Неочевидные ошибки — автоматический механизм приведения типов в Eloquent может привести к сбоям, не оставляя четкого следа в логах.
🔸Невозможность удаления устаревших значений — в продакшен-среде нельзя просто удалить данные, если их использует бизнес-логика.
🔸Проблемы при откате версий — если новая версия кода добавила enum, а затем произошел откат на более старую версию, система может перестать корректно работать.
Решение — отказ от жесткой привязки enum к модели через кастинг.
Вместо этого можно использовать кастомный обработчик, который позволит контролировать ошибки, не нарушая работу системы. Такой кастер позволяет безопасно обрабатывать неизвестные значения, предотвращая падение приложения.
Такой подход позволяет:
🔹Избежать неожиданных ошибок — кастер не выбрасывает исключения, а логирует проблему.
🔹Гибко управлять данными — можно настроить, как обрабатывать устаревшие значения (например, заменять их на дефолтные).
🔹Упрощает поддержку — код остается понятным и адаптируемым к изменениям
👉Читать подробнее
В Laravel использование enum (перечислений) помогает задать фиксированный набор значений, например, для статусов, ролей или категорий. Применение enum в качестве типа данных позволяет строго контролировать значения при работе с базой данных, что делает код чище и уменьшает вероятность ошибок. Однако с ростом проекта и изменением бизнес-логики этот подход может привести к проблемам, особенно в системах с легаси-кодом.
В идеале разработка начинается с чистой базы данных, которая настраивается под текущие задачи. Это позволяет создавать точные тесты и корректировать их при появлении новых сценариев. Однако в реальных условиях проекты редко остаются неизменными: добавляются новые значения enum, старые устаревают, а данные в базе продолжают храниться. Если удалить устаревший enum из кода, но оставить его в базе, Laravel может выдать ошибку, так как значение больше не соответствует ожидаемому набору.
📌 Основные сложности при использовании enum-кастинга в Laravel:
🔸Неочевидные ошибки — автоматический механизм приведения типов в Eloquent может привести к сбоям, не оставляя четкого следа в логах.
🔸Невозможность удаления устаревших значений — в продакшен-среде нельзя просто удалить данные, если их использует бизнес-логика.
🔸Проблемы при откате версий — если новая версия кода добавила enum, а затем произошел откат на более старую версию, система может перестать корректно работать.
Решение — отказ от жесткой привязки enum к модели через кастинг.
Вместо этого можно использовать кастомный обработчик, который позволит контролировать ошибки, не нарушая работу системы. Такой кастер позволяет безопасно обрабатывать неизвестные значения, предотвращая падение приложения.
Такой подход позволяет:
🔹Избежать неожиданных ошибок — кастер не выбрасывает исключения, а логирует проблему.
🔹Гибко управлять данными — можно настроить, как обрабатывать устаревшие значения (например, заменять их на дефолтные).
🔹Упрощает поддержку — код остается понятным и адаптируемым к изменениям
👉Читать подробнее
😁4🤔2🌚2
💡 Форматирование процентов
Знаете ли вы, что Laravel поставляется с помощником
#совет
Знаете ли вы, что Laravel поставляется с помощником
percentage
, позволяющим получить процентное отношение к любому показателю? 🚀#совет
👍6😁4🤔2
Как вы тестируете свой код?⬇️⬇️⬇️
😳 Если бы языки программирования были девушками
Выбрать язык — всё равно что найти идеального партнера. Кто-то западает на строгую типизацию, кто-то ищет простоту и гибкость, а некоторые готовы углубиться в самые сложные алгоритмы отношений.
Мы заглянули в Тиндер разработчика и нашли там PHP. Как вам? 😏
Еще большепрекрасных дам языков программирования в нашем канале Библиотека программиста.
Свайпайте и выбирайте свой мэтч ❤️
Выбрать язык — всё равно что найти идеального партнера. Кто-то западает на строгую типизацию, кто-то ищет простоту и гибкость, а некоторые готовы углубиться в самые сложные алгоритмы отношений.
Мы заглянули в Тиндер разработчика и нашли там PHP. Как вам? 😏
Еще больше
Свайпайте и выбирайте свой мэтч ❤️
🥱10🔥7👍4❤2
🔥История легенды Силиконовой долины: Энди Бехтольсхайм
Если вам интересна история Кремниевой долины из первых уст, прочитайте полное интервью.
➡️ Краткая выжимка
В этом интервью Энди Бехтольсхайм рассказывает о своем детстве в Германии, первых экспериментах с электроникой, учебе в Стэнфорде и работе в Xerox PARC. Он делится историей создания Sun Microsystems, перехода к сетевым технологиям и своими взглядами на будущее IT-индустрии. Также он объясняет, как сделал легендарную инвестицию в Google и почему стартапы должны правильно выбирать момент для выхода на рынок.
🔗 Ссылка на интервью в формате PDF
Если вам интересна история Кремниевой долины из первых уст, прочитайте полное интервью.
➡️ Краткая выжимка
В этом интервью Энди Бехтольсхайм рассказывает о своем детстве в Германии, первых экспериментах с электроникой, учебе в Стэнфорде и работе в Xerox PARC. Он делится историей создания Sun Microsystems, перехода к сетевым технологиям и своими взглядами на будущее IT-индустрии. Также он объясняет, как сделал легендарную инвестицию в Google и почему стартапы должны правильно выбирать момент для выхода на рынок.
🔗 Ссылка на интервью в формате PDF
🥱7😢1
📊 Состояние PHP в 2024 году: результаты исследования состояния экосистемы разработчиков от JetBrains
PHP остается краеугольным камнем веб-разработки, на нем работают миллионы сайтов по всему миру. Его активное и заинтересованное сообщество ценит его гибкость и простоту использования.
В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.
Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.
Читайте в исследовании и узнайте, как PHP-разработчики ориентируются в постоянно меняющемся мире современной веб-разработки.
PHP остается краеугольным камнем веб-разработки, на нем работают миллионы сайтов по всему миру. Его активное и заинтересованное сообщество ценит его гибкость и простоту использования.
В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.
Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.
Читайте в исследовании и узнайте, как PHP-разработчики ориентируются в постоянно меняющемся мире современной веб-разработки.
👍14🤩2❤1
🔥 Как НЕ НАДО собеседовать middle разработчиков
Автор является действующим PHP middle разработчиком в одной средней компании. Занимается разработкой highload микросервисов в B2B сфере. Суммарно обрабатывается около 50к запросов в секунду, хранятся миллиарды записей и находится на поддержке около тысячи интернет‑магазинов.
Он имеет опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.
🔗Читай на Хабре, как автор делится опытом собеседования на позицию middle php разработчика во «ВКонтакте»
Автор является действующим PHP middle разработчиком в одной средней компании. Занимается разработкой highload микросервисов в B2B сфере. Суммарно обрабатывается около 50к запросов в секунду, хранятся миллиарды записей и находится на поддержке около тысячи интернет‑магазинов.
Он имеет опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.
🔗Читай на Хабре, как автор делится опытом собеседования на позицию middle php разработчика во «ВКонтакте»
👍4😢3😁1🤔1
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
🤔1
🎨 MetaStorm — плагин, расширяющий PHPStorm
Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как
👉Официальный сайт
#инструменты
Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как
method($object,)
, render()
и т. д.👉Официальный сайт
#инструменты
🔥1
Какова цель использования функций array_count_values() и array_search() в PHP?
array_count_values(): Функция
array_search(): Функция
#вопросы_с_собеседований
array_count_values(): Функция
array_count_values()
используется для подсчёта количества вхождений значений в массиве. Она возвращает ассоциативный массив, где ключи — это уникальные значения из входного массива, а значения — количество их появлений.array_search(): Функция
array_search()
ищет определённое значение в массиве и возвращает первый ключ, соответствующий этому значению. Если значение не найдено, функция возвращает false
.#вопросы_с_собеседований
👍4🔥2❤1
🔗 В PHP 8.4 улучшено именование замыканий для упрощения отладки
В PHP 8.4 улучшена читаемость стека вызовов при использовании замыканий. Ранее в трассировке ошибок замыкания обозначались просто как
Теперь в стеке вызовов указывается место объявления замыкания. Например, вместо
Кроме того, при использовании
👉Читать подробнее
В PHP 8.4 улучшена читаемость стека вызовов при использовании замыканий. Ранее в трассировке ошибок замыкания обозначались просто как
{closure}
, без указания их расположения в коде. Это усложняло отладку, особенно если в одном пространстве имен использовалось несколько замыканий.Теперь в стеке вызовов указывается место объявления замыкания. Например, вместо
{closure}
теперь отображается {closure:Shopware\Storefront\Controller\StorefrontController::renderStorefront():26}
, что позволяет точно определить, где было создано и вызвано замыкание.Кроме того, при использовании
var_dump
теперь можно увидеть файл и строку, где объявлено замыкание. Этот функционал ранее использовался в Tideways Profiler и Xdebug, а теперь стал частью PHP благодаря вкладу одного из разработчиков.👉Читать подробнее
🔥30
💡 Предварительный просмотр почтовых отправлений
При работе с почтовыми файлами мы часто отправляем их в MailHog или Mailtrap, чтобы быстро просмотреть отрисованное письмо. Знаете ли вы, что Laravel позволяет просматривать письма в браузере, как если бы это были обычные файлы Blade? 🚀
#совет
При работе с почтовыми файлами мы часто отправляем их в MailHog или Mailtrap, чтобы быстро просмотреть отрисованное письмо. Знаете ли вы, что Laravel позволяет просматривать письма в браузере, как если бы это были обычные файлы Blade? 🚀
#совет
👍11
🤔 Прекратите использовать псевдотипы
PHP использует псевдотипы
Callable появился в PHP 5.4 и объединяет замыкания, строки и массивы, ссылающиеся на функции. Он удобен, но создаёт сложности при статическом анализе, так как строка может содержать несуществующую функцию.
Iterable, введённый в PHP 7.1, проверяет, является ли значение массивом или реализует интерфейс
Псевдотипы удобны, но их использование может затруднить анализ кода и привести к неожиданным ошибкам. Вместо
💬Читать подробнее
PHP использует псевдотипы
callable
и iterable
для удобной валидации данных, но они не являются полноценными типами, как string
или array
.Callable появился в PHP 5.4 и объединяет замыкания, строки и массивы, ссылающиеся на функции. Он удобен, но создаёт сложности при статическом анализе, так как строка может содержать несуществующую функцию.
Iterable, введённый в PHP 7.1, проверяет, является ли значение массивом или реализует интерфейс
Traversable
. В PHP 8.2 он перестал быть псевдотипом и теперь представляет собой объединение двух типов. Его использование может вызвать ошибки, если, например, массив заменяется генератором, что делает невозможным прямой доступ по индексу.Псевдотипы удобны, но их использование может затруднить анализ кода и привести к неожиданным ошибкам. Вместо
callable
лучше использовать Closure
, а iterable
заменять конкретными типами (array
или Iterator
) для большей предсказуемости.💬Читать подробнее
👍4🤔3🌚2