🔍 Задумывались ли вы о
Оператор строгого сравнения
Но так ли необходима встроенная проверка типов в
Раньше типичный код выглядел так:
Сейчас, с распространением типизации, логика меняется:
Проверка типов переместилась в сигнатуру функции, делая строгое сравнение избыточным.
Даже в функциях с разными возвращаемыми типами
Но ведь можно заменить на
Вывод:
💬 А какой вариант чаще используете вы?
Библиотека пхпшника #междусобойчик
===
в PHP?Оператор строгого сравнения
===
настолько привычен, что многие разработчики автоматически добавляют третий знак равенства, даже не задумываясь.Но так ли необходима встроенная проверка типов в
===
?Раньше типичный код выглядел так:
function isEqual($a, $b){ return $a === $b;}
Сейчас, с распространением типизации, логика меняется:
function isEqual(string $a, string $b){ return $a == $b; // Типы уже гарантированы}
Проверка типов переместилась в сигнатуру функции, делая строгое сравнение избыточным.
Даже в функциях с разными возвращаемыми типами
===
не всегда оправдан. Классический пример — strpos()
:$pos = strpos('abc', 'a');// Традиционный вариант:if ($pos === false) { // действие, если не найдено}`
Но ведь можно заменить на
is_bool($pos)
или явную проверку $pos === false && !is_int($pos)
.Вывод:
===
остаётся полезным инструментом, но его применение не всегда обосновано. Гибкое использование ==
в сочетании с современной типизацией делает код чище без потери надёжности.💬 А какой вариант чаще используете вы?
Библиотека пхпшника #междусобойчик
Продолжаем рассказывать про полезные фишки шторма для начинающих. Вот подборка дополнительных возможностей, не попавших в прошлые подборки:
🔹 Ctrl + E: открыть список недавно измененных файлов.
🔹 Alt + Insert: генерация кода, например, геттеров, сеттеров или конструкторов.
🔹 Shift + F6: переименование переменной, функции или файла.
Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉🐙🐱 20 лет Git: все такой же необычный, все такой же великолепный
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
Погружаемся в историю, эволюцию и влияние Git на индустрию разработки.
➡️ Читать статью
🐸 Библиотека программиста
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
Погружаемся в историю, эволюцию и влияние Git на индустрию разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Архитектура в Laravel. Как сделать код понятным и масштабируемым
Сегодня речь пойдет о теме, где нет универсальных решений, но есть проверенные практики — как организовать код в Laravel, чтобы он оставался чистым даже спустя годы развития.
🔗 Хабр
Библиотека пхпшника
Сегодня речь пойдет о теме, где нет универсальных решений, но есть проверенные практики — как организовать код в Laravel, чтобы он оставался чистым даже спустя годы развития.
🔗 Хабр
Библиотека пхпшника
Готовы проверить свои знания в базовой терминологии? В этой головоломке спрятаны 11 терминов из мира программиста.
Правила просты:
— Найдите 11 слов в сетке
— Напишите в комментариях, какие слова вы нашли
— Объясните один из терминов так, чтобы даже джун понял
🏆 Кто первым найдет все 11 слов и объяснит хотя бы один термин — тот настоящий бэкендер😏
Погнали 👇
Библиотека пхпшника #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека питониста | Python, Django, Flask
На собеседовании важно уметь выделить главное — свои сильные стороны, мышление и ценности. Это помогает справляться со стрессом, неожиданными вопросами и субъективной оценкой.
• Как работает PCA
• Зачем он нужен
• Как применять его на практике — например, для анализа доходностей акций S&P 500
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Подборка новостей по PHP за неделю:
🔎 Laravel 12.8: Автоматическая загрузка отношений и новые возможности
Команда Laravel представила версию 12.8.0, в которой реализована автоматическая eager-загрузка отношений. Это упрощает работу с данными и снижает вероятность возникновения проблемы N+1 запросов.
🔎 Laravel 12.6: Метод fillAndInsert и другие улучшения
В версии 12.6.0 фреймворка Laravel появился метод
🔎 Релизы PHP 8.4.6 и 8.3.20: исправления ошибок и улучшения безопасности
Рекомендуется обновиться до этих версий, чтобы обеспечить стабильную и безопасную работу приложений.
🔎 Неделя Symfony #954 (7–13 апреля 2025 года)
На этой неделе Symfony 7.3 перешёл в стадию «feature freeze» в преддверии релиза, запланированного на конец мая 2025 года.
Библиотека пхпшника #свежак
🔎 Laravel 12.8: Автоматическая загрузка отношений и новые возможности
Команда Laravel представила версию 12.8.0, в которой реализована автоматическая eager-загрузка отношений. Это упрощает работу с данными и снижает вероятность возникновения проблемы N+1 запросов.
🔎 Laravel 12.6: Метод fillAndInsert и другие улучшения
В версии 12.6.0 фреймворка Laravel появился метод
fillAndInsert()
, который позволяет заполнять модель данными и сразу вставлять её в базу данных, учитывая приведения типов и временные метки.🔎 Релизы PHP 8.4.6 и 8.3.20: исправления ошибок и улучшения безопасности
Рекомендуется обновиться до этих версий, чтобы обеспечить стабильную и безопасную работу приложений.
🔎 Неделя Symfony #954 (7–13 апреля 2025 года)
На этой неделе Symfony 7.3 перешёл в стадию «feature freeze» в преддверии релиза, запланированного на конец мая 2025 года.
Библиотека пхпшника #свежак
🚀 Как использовать Enums в Laravel 12
С выходом PHP 8.1 в язык пришли Enum'ы — перечисления, которые делают код чище, безопаснее и выразительнее. Laravel 12 полностью поддерживает Enums и превращает их в мощный инструмент валидации, кастов моделей и отображения данных.
🧩 Что дают Enums?
Надёжная типизация и защита от ошибок
Удобство в работе с методами (
Простое использование в Eloquent, Blade, API, валидации
Мощные кастомные методы и проверка переходов состояний
🔥 Enums становятся частью доменной логики, а не просто значениями.
📚 В статье — примеры, практики, best practices и советы по производительности.
🔗 Medium
Библиотека пхпшника #буст
С выходом PHP 8.1 в язык пришли Enum'ы — перечисления, которые делают код чище, безопаснее и выразительнее. Laravel 12 полностью поддерживает Enums и превращает их в мощный инструмент валидации, кастов моделей и отображения данных.
🧩 Что дают Enums?
Надёжная типизация и защита от ошибок
Удобство в работе с методами (
label()
, color()
, isFinalized()
)Простое использование в Eloquent, Blade, API, валидации
Мощные кастомные методы и проверка переходов состояний
🔥 Enums становятся частью доменной логики, а не просто значениями.
📚 В статье — примеры, практики, best practices и советы по производительности.
🔗 Medium
Библиотека пхпшника #буст
🛡️ Переход с
Если вы всё ещё используете аннотации
🔹 Обновите бандл до версии 6.0
🔹 Используйте Rector для миграции аннотаций в PHP-атрибуты
🔹 Исправьте ограничение
🔹 Замените
🔹 Разделяйте сложные условия на несколько
🔹 Используйте enum-классы для прав доступа
🔹 Перейдите на нативный атрибут
🔧 Инструменты для автоматизации
Используйте Rector для автоматического применения преобразований и PHPStan для контроля качества кода.
📚 Подробнее
Полное руководство с примерами и конфигурациями доступно в оригинальной статье
@Security
на #[IsGranted]
в SymfonyЕсли вы всё ещё используете аннотации
@Security
из sensio/framework-extra-bundle
, пора переходить на нативные атрибуты Symfony. Вот как это сделать:🔹 Обновите бандл до версии 6.0
🔹 Используйте Rector для миграции аннотаций в PHP-атрибуты
🔹 Исправьте ограничение
#[Security]
, чтобы он стал повторяемым🔹 Замените
#[Security(«is_granted(...)»)]
на #[IsGranted(...)]
🔹 Разделяйте сложные условия на несколько
#[IsGranted]
🔹 Используйте enum-классы для прав доступа
🔹 Перейдите на нативный атрибут
Symfony\Component\Security\Http\Attribute\IsGranted
🔧 Инструменты для автоматизации
Используйте Rector для автоматического применения преобразований и PHPStan для контроля качества кода.
📚 Подробнее
Полное руководство с примерами и конфигурациями доступно в оригинальной статье
Reli — профилировщик выборки или памяти
Это профилировщик, написанный на PHP, который считывает информацию о запуске виртуальной машины PHP извне процесса. Вы можете обнаружить узкие места производительности или утечки памяти в своих скриптах, не меняя целевой скрипт и не загружая расширения.
🔗 Github
#инструменты
Это профилировщик, написанный на PHP, который считывает информацию о запуске виртуальной машины PHP извне процесса. Вы можете обнаружить узкие места производительности или утечки памяти в своих скриптах, не меняя целевой скрипт и не загружая расширения.
🔗 Github
#инструменты
🐘 Квиз для PHP-разработчиков: ответишь на все вопросы или сольешься?
Проверь свои знания PHP перед собеседованием: тест с вопросами о типах данных, функциях, директивах и классах. Идеально для разработчиков, готовящихся к техническому интервью.
👉 Пройти тест
Проверь свои знания PHP перед собеседованием: тест с вопросами о типах данных, функциях, директивах и классах. Идеально для разработчиков, готовящихся к техническому интервью.
👉 Пройти тест
Когда сроки горят, а разработчиков не хватает
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
Скрытые гемы в PHP: 7 структур данных SPL, которые вы должны знать
Статья описывает семь мощных структур данных из SPL (Standard PHP Library), которые могут повысить эффективность и элегантность кода на PHP:
SplFixedArray — это массив с фиксированным размером, который экономит память по сравнению с обычными массивами. Он идеально подходит для работы с большими наборами данных, когда известен размер массива заранее.
SplObjectStorage — это структура для хранения объектов с возможностью привязывать к ним дополнительные данные (метаданные). Она полезна для эффективного управления объектами и проверки их наличия.
SplPriorityQueue — очередь с приоритетами, где элементы обрабатываются в зависимости от их приоритета. Полезно для построения систем планирования задач, где важно выполнять элементы в определённом порядке.
SplDoublyLinkedList — двусвязный список, позволяющий быстро добавлять и удалять элементы с обеих сторон списка. Идеален для реализации функций «отмена/повтор», а также для работы с динамическими списками, например, плейлистами.
SplHeap — структура данных для поддержания отсортированной коллекции элементов. В примере реализован «мин-куча», где элементы с наименьшим значением имеют наивысший приоритет. Полезен для таких алгоритмов, как кратчайший путь Дейкстры.
SplStack — стек с принципом LIFO (последний вошёл — первый вышел), который полезен для таких задач, как обработка выражений, функции отмены действий и обход графов в глубину.
SplFileObject — объектно-ориентированный интерфейс для работы с файлами. Он упрощает операции чтения и записи файлов, делая их более удобными для использования и интеграции с другими структурами SPL.
👉 Читать статью
Библиотека пхпшника #буст
Статья описывает семь мощных структур данных из SPL (Standard PHP Library), которые могут повысить эффективность и элегантность кода на PHP:
SplFixedArray — это массив с фиксированным размером, который экономит память по сравнению с обычными массивами. Он идеально подходит для работы с большими наборами данных, когда известен размер массива заранее.
SplObjectStorage — это структура для хранения объектов с возможностью привязывать к ним дополнительные данные (метаданные). Она полезна для эффективного управления объектами и проверки их наличия.
SplPriorityQueue — очередь с приоритетами, где элементы обрабатываются в зависимости от их приоритета. Полезно для построения систем планирования задач, где важно выполнять элементы в определённом порядке.
SplDoublyLinkedList — двусвязный список, позволяющий быстро добавлять и удалять элементы с обеих сторон списка. Идеален для реализации функций «отмена/повтор», а также для работы с динамическими списками, например, плейлистами.
SplHeap — структура данных для поддержания отсортированной коллекции элементов. В примере реализован «мин-куча», где элементы с наименьшим значением имеют наивысший приоритет. Полезен для таких алгоритмов, как кратчайший путь Дейкстры.
SplStack — стек с принципом LIFO (последний вошёл — первый вышел), который полезен для таких задач, как обработка выражений, функции отмены действий и обход графов в глубину.
SplFileObject — объектно-ориентированный интерфейс для работы с файлами. Он упрощает операции чтения и записи файлов, делая их более удобными для использования и интеграции с другими структурами SPL.
👉 Читать статью
Библиотека пхпшника #буст
Собрали топовые материалы, которые стабильно попадает в закладки наших айти-подписчиков.
Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!
1. Плохие практики в PHP-бэкэнде: примеры и советы
2. Выжимаем максимум скорости из PHP
3. Почему вам стоит задуматься о переходе на PHP 8.4?
4. Асинхронный бег или драматическое ускорение с RoadRunner
5. Как НЕ НАДО собеседовать middle разработчиков
6. 51к API для разработчиков в одном каталоге
7. Новый тренажёр по SQL
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂️ Сохранение нескольких моделей
Знаете ли вы, что Laravel позволяет сохранять сразу несколько связанных моделей с помощью метода
Библиотека пхпшника #буст
Знаете ли вы, что Laravel позволяет сохранять сразу несколько связанных моделей с помощью метода
saveMany
🚀Библиотека пхпшника #буст
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Поделитесь своим самым неловким моментом на собеседовании
Работа мечты, крутая вакансия... И вдруг — фейл на интервью, который запомнился надолго. У каждого такие истории есть. 😅
💬 Расскажите в комментариях:
— Что произошло?
— Как выкрутились (или нет)?
— Какие выводы сделали после этого?
Самые честные и забавные истории попадут в наш следующий пост — а их авторы заработают уважение и +100 к карме в IT-сообществе.
Библиотека пхпшника #междусобойчик
Работа мечты, крутая вакансия... И вдруг — фейл на интервью, который запомнился надолго. У каждого такие истории есть. 😅
💬 Расскажите в комментариях:
— Что произошло?
— Как выкрутились (или нет)?
— Какие выводы сделали после этого?
Самые честные и забавные истории попадут в наш следующий пост — а их авторы заработают уважение и +100 к карме в IT-сообществе.
Библиотека пхпшника #междусобойчик
Closure::bind() и bindTo() в PHP
Статья рассматривает методы
В статье приводятся практические примеры использования этих методов, включая:
🔸 Привязку
🔸 Доступ к приватным свойствам объекта через изменение области видимости.
🔸 Удаление привязки
🔸 Обертывание методов для добавления дополнительной логики до и после их выполнения.
Эти техники могут быть полезны при работе с DI-контейнерами, создании прокси-объектов и реализации AOP.
👉 Читать статью
Статья рассматривает методы
Closure::bind()
и bindTo()
в PHP, которые позволяют управлять контекстом замыканий. Эти методы позволяют изменять значение $this
и область видимости замыкания, что открывает возможности для доступа к приватным свойствам, оборачивания методов и реализации аспектно-ориентированного программирования (AOP).В статье приводятся практические примеры использования этих методов, включая:
🔸 Привязку
$this
к замыканию, созданному вне класса.🔸 Доступ к приватным свойствам объекта через изменение области видимости.
🔸 Удаление привязки
$this
из замыкания.🔸 Обертывание методов для добавления дополнительной логики до и после их выполнения.
Эти техники могут быть полезны при работе с DI-контейнерами, создании прокси-объектов и реализации AOP.
👉 Читать статью