Лента постов канала Библиотека пхпшника (@phpproglib) https://t.me/phpproglib Канал про современный PHP и его инструменты. Обратная связь: @proglibrary_feedback_bot Митапы и конференции: @event_listener_bot По вопросам рекламы @proglib_adv Прайс: @proglib_advertising http://ad.proglib.io/ ru https://linkbaza.com/catalog/-1001222195794 Fri, 22 Aug 2025 21:00:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 22 Aug 2025 10:00:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 21 Aug 2025 21:00:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 21 Aug 2025 15:37:34 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 21 Aug 2025 10:00:09 +0300
How to: снизить число ошибок на проекте и получить стабильный код благодаря статическому анализу PHPStan

В статье рассказано, как внедрить в процессы разработки статический анализ на основе PHPStan. Результат внедрения инструмента показан на примере проекта крупного производителя строительных материалов, который обратился с задачей по автоматизации и цифровизации оптовых онлайн-продаж.


🔗 Хабр

Библиотека пхпшника

#буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 20 Aug 2025 21:00:17 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 20 Aug 2025 17:55:28 +0300
☝️ Один мудрый тимлид дал двум своим разработчикам по «таланту» — мощной, но своенравной LLM.

Первый разработчик испугался её «галлюцинаций». Он запер модель в песочнице, не давая ей доступа к свежим данным. На вопросы модель отвечала красиво, но часто придумывала факты, то есть врала. Он просто «закопал» свой талант, боясь им пользоваться.

Второй же разработчик не побоялся. Он построил для своей LLM систему RAG — дал ей «лопату и карту», чтобы находить сокровища в базе знаний компании. Его AI-агент отвечал точно по делу, ссылаясь на реальные документы. Он заставил свой «талант» работать и приносить пользу.

Мощь LLM раскрывается не в ней самой, а в системах, которые вы строите вокруг неё.


Именно такие системы мы и будем строить на втором потоке нашего курса «AI-агенты для DS-специалистов». Мы не просто поговорим о RAG, а соберём полный пайплайн с оценкой качества, чтобы ваш агент не врал.

Представьте, что вы сможете начать изучать эту сложную и востребованную тему уже 15 сентября, а не ждать официального старта в октябре. У вас будет фора в 3 недели, чтобы спокойно разобраться в векторных базах и подходе «LLM as a Judge».

💸 Цена 49.000 ₽ действует последние 4 дня — до 24 августа.

👉 Начать строить RAG раньше других
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 20 Aug 2025 14:00:41 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 20 Aug 2025 10:00:00 +0300
😊 Промт дня: генератор регулярных выражений

Регулярные выражения это что-то на эльфийском. Вместо ручного написания попросите об этом нейросеть с помощью промта:
I want you to act as a regex generator. Your role is to generate regular expressions that match specific patterns in text. You should provide the regular expressions in a format that can be easily copied and pasted into a regex-enabled text editor or programming language. Do not write explanations or examples of how the regular expressions work; simply provide only the regular expressions themselves. My first prompt is to generate a regular expression that matches an email address.


В этом примере будет сгенерировано выражение, для матчинга email-адресов.

💬 Часто пишете регулярки? Делитесь в комментариях! 🚀


🐸Библиотека пхпшника

#буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 19 Aug 2025 22:01:06 +0300
⚡️ Бесплатный вебинар — прогнозируем цены и не сходим с ума

21 августа в 19:00 МСК будет бесплатный вебинар с Марией Жаровой — экспертом в ML и Data Science.

Тема:
«Введение в машинное обучение: как спрогнозировать стоимость недвижимости».


Подробности рассказываю в гс выше — включай, чтобы не пропустить.
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 19 Aug 2025 21:00:10 +0300
🚀 Тюнинг производительности PHP-FPM

Правильная настройка PHP-FPM имеет решающее значение для эффективного использования ресурсов сервера. Вот несколько ключевых параметров для оптимизации производительности:

🔧 Основные параметры:
pm = dynamic
Управляет количеством рабочих процессов. В режиме dynamic количество процессов изменяется в зависимости от нагрузки сервера.
pm.max_children = 1000
Максимальное количество рабочих процессов. Высокие значения могут привести к ошибкам из-за нехватки памяти. Пример: для 1000 процессов × 100MB/процесс потребуется 100GB RAM.
pm.start_servers = 80
Количество процессов, которое будет запущено при старте PHP-FPM для быстрой обработки начальной нагрузки.
pm.min_spare_servers = 40
Минимальное количество «запасных» процессов, которые должны оставаться в ожидании.
pm.max_spare_servers = 120
Максимальное количество неактивных процессов. Если их больше, лишние процессы будут завершаться.
request_terminate_timeout = 300s
Ограничение времени для запроса — если выполнение длится более 5 минут, процесс будет завершен.
request_slowlog_timeout = 5s
Все запросы, которые выполняются более 5 секунд, записываются в лог для анализа производительности.

📊 Рекомендации:
Для серверов с меньшим объёмом памяти, например 8GB RAM, настройте:

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

Эти настройки обеспечат баланс между производительностью и безопасностью, сохраняя ресурсы для других служб.

👉 Поделитесь этим постом с коллегами!

🔗
Ссылка на статью

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 19 Aug 2025 10:00:36 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 18 Aug 2025 22:01:19 +0300
🔥 Последняя неделя, чтобы забрать курс по AI-агентам по старой цене!

Пока вы тестируете Copilot, другие уже учатся строить AI-агентов, которые реально работают на бизнес. Хватит отставать!

Наш курс — это концентрат практики по LangChain и RAG. Улучшенная версия, доработанная по отзывам первого потока.

📆 Старт — 15 сентября.

💸 Цена 49 000 ₽ — только до 24 августа.

👉 Зафиксировать цену
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 18 Aug 2025 22:00:29 +0300
🫣 Хотите в Data Science, но боитесь высшей математики?

Хорошая новость: вам не нужно становиться математиком. Вам нужно освоить конкретные разделы, которые реально используются в работе и на собеседованиях.

Именно этому учат преподаватели ВМК МГУ на нашем курсе «Математика для Data Science».

Без лишней воды — только то, что нужно для:

✅ успешного поступления в ШАД Яндекса;
✅ прохождения собеседований уровня FAANG;
✅ глубокого понимания ML-алгоритмов.

Это самый прямой путь к математическому фундаменту, на котором строится вся карьера в Data Science.

👉 Начните строить свою карьеру уже сегодня
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 18 Aug 2025 10:00:07 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sun, 17 Aug 2025 16:00:38 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 16 Aug 2025 18:00:37 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 16 Aug 2025 16:00:09 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 16 Aug 2025 12:01:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 15 Aug 2025 21:02:06 +0300
🧠 Оптимизация через обратный слэш в PHP — миф или реальность?

Опкод — промежуточное представление кода, которое исполняется Zend VM. PHP, как и Java, сначала транслирует код в опкоды. Только если Java сохраняет байткод в .class, то PHP — нет. Для этого и существует OPcache.

⚠️ Проблема:
При вызове стандартных функций без обратного слэша (например, explode()), PHP сначала пытается найти функцию в текущем пространстве имён. Это резолвинг — лишнее действие, которого можно избежать.

💡 Решение:
Добавить \ перед вызовами глобальных функций (\explode(), \strlen() и т.д.), тем самым указывая интерпретатору сразу на нужное пространство.

🔬 Бенчмарки:
Проведено сравнение двух версий кода — с бэкслешами и без:

0.576μs → без бэкслешей
0.536μs → с бэкслешами

Разница — 7%, или 40 наносекунд. Мизер? Да. Но в случае 1000+ вызовов — уже ощутимо. В контексте фреймворков, обрабатывающих сотни запросов в секунду, это может суммарно повлиять.

🛠️ Что делать:
• Включить в проекте PHP-CS-Fixer с правилом native_function_invocation
• Или приучиться добавлять \ вручную
• Для любителей хардкора — реанимировать устаревший PHP_CodeSniffer с нестабильным плагином

📌 Вывод:
Это не про магию ускорения. Это микрооптимизация, и в большинстве случаев она не даст серьёзного прироста. Но она точно иллюстрирует, как работает PHP под капотом — и где теряется время.

🔗 Хабр

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 15 Aug 2025 18:03:26 +0300
🧠 Выбор первого ML-проекта: чеклист против выгорания

Классика плохих решений в ML — выбрать слишком сложный проект: неделя ковыряния в коде, десятки крашей и никакого результата. Хотите дойти до финиша — начните с простого проекта, который реально можно довести до конца.

Мини-чеклист первого проекта:

1. Понятные данные — без «я нашёл датасет в даркнете, но он на суахили».

2. Измеримая метрика — «точность 92%», а не «ну вроде работает».

3. Объяснимый результат — чтобы не-техлид понял, почему модель ругается на спам.

Наш курс «ML для старта в Data Science» — старт от простого к сложному: теория → практика → проверка → проект в портфолио.

👉 Начать свой путь в Data Science

Оплатите курс по ML до 17 августа — курс по Python в подарок.

📅 Бесплатный вебинар с Марией Жаровой — 21 августа: как выбирать проекты, которые доводят до оффера, а не до психотерапевта.

💾 Сохрани, чтобы не потерять, когда будешь готов(а) начать
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 15 Aug 2025 10:00:06 +0300
🔄 Команда дня: Обновление всех зависимостей до последних стабильных версий

📌 Команда:

composer update --prefer-dist

Эта команда обновляет все зависимости проекта до последних стабильных версий, предпочитая скачивание архивов пакетов, что может быть быстрее и надёжнее.

🔍 Зачем это нужно?
Регулярное обновление зависимостей помогает поддерживать проект в актуальном состоянии, обеспечивая:
Исправление уязвимостей безопасности: Обновления часто включают исправления для известных уязвимостей.
Совместимость с новыми версиями PHP: Некоторые пакеты могут требовать обновлений для поддержки последних версий PHP.
Доступ к новым функциям и улучшениям производительности: Обновления могут включать новые возможности и оптимизации.

⚙️ Как это работает?
composer update: Обновляет все зависимости до последних версий, соответствующих ограничениям, указанным в composer.json.
--prefer-dist: Предпочитает скачивание архивов пакетов вместо клонирования репозиториев Git, что может быть быстрее и надёжнее.

📦 Дополнительные флаги:
--no-dev: Не обновляет зависимости, указанные в секции require-dev.
--dry-run: Показывает, какие изменения будут внесены, но не выполняет их.
--with-all-dependencies: Обновляет все зависимости, включая те, которые являются зависимостями других пакетов.

🧪 Пример использования:

composer update --prefer-dist --no-dev

Эта команда обновит все основные зависимости до последних стабильных версий, исключая зависимости для разработки.

⚠️ Важные замечания:
Проверка совместимости: Перед обновлением рекомендуется проверить, совместимы ли новые версии зависимостей с вашим проектом.
Резервное копирование: Перед выполнением обновлений сделайте резервную копию вашего проекта, чтобы в случае проблем можно было восстановить его состояние.
Тестирование: После обновления зависимостей обязательно выполните тесты, чтобы убедиться в корректной работе приложения.

Библиотека пхпшника #буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 14 Aug 2025 21:00:43 +0300
💃 Как взять задачи посерьёзнее

Почему одним достаются крутые фичи, а вы — снова на багфиксе. Именно с такой историей пришёл к нам подписчик:
Работаю в команде больше года. Почти все ключевые и интересные задачи уходят к сеньорам. Мне достаются мелкие доработки, баги и то, что «надо кому-то сделать». Сначала думал, что это временно. Что делать, чтобы перейти на более серьёзный уровень и не застрять в рутине?


Если вы молча делаете своё и не выходите за рамки текущих задач, команду устраивает, что вы «надёжный исполнитель».

Хотите большего — начните показывать больше: идеи, инициативу, участие в обсуждениях, собственные предложения.

Даже если вы в команде давно — это не аргумент для роста. Важнее — насколько вы выросли профессионально, какой вклад вы создаёте, и готовы ли к задачам более высокого уровня.

Если вы хотите получить серьёзную задачу — приходите подготовленным: изучите фичу, продумайте архитектуру, обозначьте риски. Это сигнал: вам можно доверять.

💬 Что вы делали для того, чтобы взять задачку покруче? Делитесь опытом в комментариях 👇

🐸Библиотека пхпшника #междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 14 Aug 2025 18:03:20 +0300
🚀 Главная ошибка новичка в ML — строить звездолёт вместо велосипеда

Многие сразу хотят свою Midjourney, но в итоге получают только выгорание.

Успех начинается с «велосипеда»: научитесь предсказывать цены или классифицировать отзывы. Освойте базу, а уже потом стройте «звездолёты».

Наш курс «ML для старта в Data Science» — это и есть тот самый правильный старт от простого к сложному.

👉 Начните правильно

Берёте курс «ML для старта» до конца недели — Python в подарок.

❗А 21 августа пройдет бесплатный вебинар с Марией Жаровой: узнаете, какие проекты качают скилл, а какие качают ваши нервы.

А какой самый сложный проект вы брались делать в самом начале? 🫢
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 14 Aug 2025 10:00:36 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 13 Aug 2025 21:00:16 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 13 Aug 2025 14:00:10 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 13 Aug 2025 10:00:47 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 12 Aug 2025 21:01:12 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 12 Aug 2025 10:01:18 +0300
⏳Оптимизированное шифрование строк с помощью Fluent в Laravel

Статья рассказывает о нововведении в Laravel, которое делает работу со шифрованием строк проще и читаемее.

Раньше, чтобы зашифровать строку внутри fluent-цепочки (str()), приходилось использовать pipe() с анонимной функцией — это разрывало читаемость кода.

Теперь Laravel поддерживает методы encrypt() и decrypt() прямо в цепочках, что позволяет:
🔹 Не выходить из fluent-интерфейса;
🔹 Поддерживать читаемость;
🔹 Использовать уже настроенные параметры шифрования (cipher, key) приложения.

Также показан реальный кейс: генерация и расшифровка идентификаторов документов, где важно:
🔸 зашифровать строку с нужным форматированием (дата, департамент и ID);
🔸 сохранить длину и читаемость;
🔸 безопасно расшифровывать обратно.

Ключевая идея: теперь можно удобно и безопасно обрабатывать чувствительные данные (настройки, токены, ID и пр.) прямо внутри str()-цепочек без лишнего кода.

🔗 Читать статью

Библиотека пхпшника #буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 11 Aug 2025 21:02:06 +0300
⌨️ Топ-вакансий по PHP за неделю

PHP-разработчик (Symfony) — от 160 000 ₽, удалёнка (Москва)

TeamLead backend (PHP) — от 350 000 ₽, офис (Москва)

Senior PHP-разработчик — от 300 000 ₽, Гибрид (Москва, Батуми)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sun, 10 Aug 2025 16:00:30 +0300
💻 Подборка новостей по PHP за неделю:​

🔹 Laravel Idea бесплатно — с 30 июля 2025 плагин Laravel Idea стал бесплатным для пользователей PhpStorm, полный доступ ко всем функциям без доплат.

🔹 PHP 8.5.0 Alpha 4 — новая тестовая версия в рамках цикла PHP 8.5.

🔹 PHP 8.4.11 и 8.3.24 — релизы с исправлениями ошибок, рекомендуется обновление.

🔹 Symfony 7.3.2 — техническое обновление, доступны гайды и отчёты SymfonyInsight для безопасного апгрейда.

🔹 Symfony 28 июля — 3 августа 2025 — вышли версии 6.4.24, 7.2.9 и 7.3.2; начата депрекация XML-конфигурации в некоторых компонентах, улучшен YAML с автодополнением, переработан процесс дампа контейнера в XML.

Библиотека пхпшника #свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 09 Aug 2025 16:01:13 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 09 Aug 2025 12:00:16 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 08 Aug 2025 21:00:06 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 08 Aug 2025 10:02:35 +0300
🛠 PhpStorm‑лайфхак: ускоряем IDE, исключив внешние библиотеки из индексации

Когда в проекте много зависимостей (vendor/, node_modules/ и т.п.), PhpStorm может тормозить из-за длительной индексации.

✅ Простое решение: кликните папку → Mark Directory as → Excluded.

🚀 После этого IDE быстрее работает, особенно при автокомплите и поиске по проекту.

Попробуйте — в крупных проектах сразу почувствуете разницу!

Библиотека пхпшника #буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 07 Aug 2025 22:00:31 +0300
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.

Выберите курс, который поможет сделать следующий шаг ⬇️

🚀 Для тех, кто начинает путь в IT:

Основы IT для непрограммистов
Программирование на Python (обновлённый)
Frontend-разработчик с нуля: HTML, CSS, JavaScript

🧠 Для будущих и настоящих Data Scientist'ов:

ML для старта в Data Science (начинается в сентябре)
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (скоро второй поток)

🛠️ Для опытных разработчиков, готовых к росту:

Алгоритмы и структуры данных
Архитектуры и шаблоны проектирования

Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 07 Aug 2025 21:00:09 +0300
Какое ревью в вашем PHP-коде было самым спорным?

🤬 Кто-то не принимает match в проде, кто-то на дух не переносит Service-суффиксы в названиях.
А может, у вас спор был из-за static методов, facade-ов или неправильного DI?

Поделитесь:
• Из-за чего начался спор?
• Кто в итоге «победил»?
• Как теперь пишете код?

💬 Интересно собрать реальные кейсы — и заодно понять, где граница между чистым кодом и субъективщиной.

Библиотека пхпшника #междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 07 Aug 2025 14:00:07 +0300
Git Notes

В статье рассказано о том, как можно использовать малозаметную, но полезную функцию Git — Git Notes — для добавления дополнительной информации к коммитам после их создания. В отличие от стандартных коммитов, которые создают новые объекты при изменении данных (например, при изменении сообщения коммита), Git Notes позволяют прикрепить к существующему коммиту дополнительную информацию, не меняя его.

Git Notes позволяют добавить различные заметки к коммиту с помощью команды git notes add. Эти заметки хранятся в отдельной ветке notes/commits и могут быть сгруппированы по категориям через флаг --ref. Например, можно создать разные типы заметок для одного и того же коммита — заметки, связанные с проверкой качества или тестированием кода.

Функционал Git Notes особенно полезен в таких случаях, как хранение обсуждений и комментариев к pull request'ам (PR). В проекте Symfony используют специальный инструмент для объединения веток, который автоматически сохраняет комментарии из GitHub в виде заметок Git Notes. Эти комментарии прикрепляются к коммитам, что позволяет отслеживать обсуждения даже после смены платформы или удаления исходного PR. Таким образом, при необходимости можно получить доступ к обсуждению, сохранив его вместе с кодом.

Для того чтобы просмотреть или извлечь эти заметки, можно использовать команду git log --notes или настраивать git fetch, чтобы автоматически загружать заметки с сервера.

👉 Читать статью

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 07 Aug 2025 10:04:25 +0300
🔄 Перекладывать JSON теперь проще

Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.

Промпт:
Напиши функцию на PHP, которая преобразует JSON-объект с полями [Ваш JSON] в [Ваш формат]. Функция должна корректно обрабатывать ошибки парсинга JSON, возвращая либо строку, где произошла ошибка, либо ошибку.


👇 JSONо-укладчики «+» в чат

🐸Библиотека пхпшника #буст
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 06 Aug 2025 21:02:10 +0300
#memes
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 06 Aug 2025 10:00:34 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 05 Aug 2025 21:00:06 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 05 Aug 2025 10:00:26 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 04 Aug 2025 21:02:09 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Mon, 04 Aug 2025 10:00:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sun, 03 Aug 2025 16:00:17 +0300
💻 Подборка новостей по PHP за неделю:​

🔹 Laravel 12.21 — появились атрибуты Singleton и Scoped для контейнера, метод query builder для проверки значений между двумя колонками, строгая валидация чисел и булевых значений.

🔹 Symfony 21–27 июля — активная подготовка к релизам Symfony 7.4 и 8.0: добавлен ObjectMapperAwareInterface, улучшены JsonStreamer и AssetMapper, удалены устаревшие фичи, включая автоматическое отображение Doctrine entity.

🔹 PHP 8.5.0 Alpha 2 — вышла вторая альфа-версия, приглашают к тестированию.

🔹 Livewire уязвимость (CVE-2025-54068) версии до 3.6.3 уязвимы к удалённому выполнению команд через обновление свойств компонента. Обновитесь немедленно.

🔹 Symfony AI новые компоненты для интеграции AI в PHP-приложения, от низкоуровневых библиотек до бандлов.

Библиотека пхпшника #свежак
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 02 Aug 2025 16:00:03 +0300
🌗 Айтишный культ темной темы в IDE

Темная тема давно стала визуальной нормой для нас — кто-то включил один раз и больше не возвращался. А кто-то сидит на светлой и не видит смысла менять.

За темную:

— Не слепит в темноте

— Глаза устают меньше

— Просто красиво

За светлую:

— Лучше читается при дневном свете

— Меньше проблем с контрастом

— Привычнее для документации и веба

А какой темой пользуетесь вы? Делитесь в коммментариях!

🐸Библиотека пхпшника #междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 02 Aug 2025 12:00:11 +0300
#memes
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 01 Aug 2025 21:00:08 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 01 Aug 2025 10:00:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 31 Jul 2025 21:00:00 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 31 Jul 2025 10:00:00 +0300
🚀 Pipe operator в PHP 8.5 — меньше вложенности, больше читаемости

PHP 8.5 завез мощную штуку — оператор пайпа (|>), и это реально меняет стиль кода.

Раньше:

$result = trim(str_shuffle(strtoupper("Hello World")));


Или ещё хуже — с кучей временных переменных:

$result = "Hello World";
$result = strtoupper($result);
$result = str_shuffle($result);
$result = trim($result);

Теперь:
$result = strtoupper("Hello World")
|> str_shuffle(...)
|> trim(...);

Каждая операция читается как шаг рецепта — слева направо. Код становится декларативным, не запутанным и без временных переменных.

🎯 Реальный пример: обработка email'а из формы

$result = $_REQUEST['email']
|> fn($e) => strtolower($e)
|> fn($e) => filter_var($e, FILTER_VALIDATE_EMAIL)
|> fn($e) => sendEmail($e, "Welcome!");

echo $result ? "Sent!" : "Error";

🔥 Минимум шума, максимум сути.

Pipe — мелкая синтаксическая штука, но она делает код ближе к тому, как вы мыслите.
С PHP 8.5 пишем как люди.

🐸Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 30 Jul 2025 21:00:06 +0300
#memes
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Wed, 30 Jul 2025 10:00:06 +0300
🧪 Команда дня: Запуск тестов только одного файла

📌 Команда:

phpunit путь/к/файлу/ТестКласс.php

Где ТестКласс.php — это файл с тестами, который вы хотите запустить.

🔍 Зачем это нужно?
При разработке или рефакторинге кода часто возникает необходимость быстро проверить работу конкретного теста или группы тестов. Запуск всех тестов может занять много времени, особенно в больших проектах. Используя команду выше, вы можете выполнить только нужный файл тестов, что ускоряет процесс разработки и отладки.

📝 Пример:
Предположим, у вас есть файл с тестами UserTest.php в директории tests/Feature/. Чтобы запустить только этот файл, выполните:

phpunit tests/Feature/UserTest.php

Это выполнит все тесты, определённые в классе UserTest, и выведет результаты в консоль.

⚙️ Дополнительные опции:

Запуск конкретного метода теста:
Если вы хотите выполнить только один метод теста из класса, используйте параметр --filter с указанием имени метода:

phpunit --filter testMethodName путь/к/файлу/ТестКласс.php

Замените testMethodName на имя метода, который вы хотите запустить.

Использование регулярных выражений:
Параметр --filter поддерживает регулярные выражения. Например, чтобы запустить все методы, начинающиеся с testUser, используйте:

phpunit --filter '/^testUser/' путь/к/файлу/ТестКласс.php

Это полезно, если вы хотите выполнить группу тестов, соответствующих определённому шаблону.

💡 Советы:

Проверка синтаксиса перед запуском:
Перед выполнением тестов рекомендуется проверить синтаксис PHP-файла:

php -l путь/к/файлу/ТестКласс.php

Это поможет избежать ошибок при запуске тестов.

Использование в CI/CD:
Если вы интегрируете тесты в систему непрерывной интеграции, убедитесь, что пути к тестовым файлам указаны корректно, и используйте соответствующие команды для запуска отдельных тестов или групп тестов.
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 29 Jul 2025 21:00:17 +0300
В PHP 8.5 появится опция INI Diff

Статья объясняет, как в PHP 8.5 с помощью опции --ini=diff можно легко выявить изменения в INI-конфигурации, которые отличаются от стандартных значений. Эта возможность полезна для отслеживания изменений в конфигурации PHP без необходимости вручную сравнивать текущие значения с настройками по умолчанию. Пример показан на Docker-контейнере с PHP 8.5, где можно увидеть, как изменения INI-файлов, например, в настройке memory_limit, отображаются при запуске контейнера. В статье также приводятся шаги для создания Docker-образа, который позволяет экспериментировать с этими новыми функциями.

🔗 Читать статью

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 29 Jul 2025 15:04:17 +0300
Последний шанс залутать курсы Proglib Academy с выгодой 40% и пожизненным доступом.

До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.

Выбираем и забираем 👈

P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Tue, 29 Jul 2025 10:00:59 +0300
How to: миграция больших баз данных в Laravel

Статья описывает стратегию миграции больших баз данных в Laravel без простоя и с минимальным риском ошибок, подходящую для высоконагруженных приложений. Основная цель — избежать блокировок таблиц, сбоев и ошибок во время трафика, что критично для таких систем, как электронная коммерция или банковские приложения.

Основная стратегия — это метод «Double Write + Backfill», который включает несколько шагов:

1. Добавление новых колонок или таблиц без удаления старых, чтобы данные продолжали работать.
2. Реализация логики «двойной записи»: во время обновлений и вставок данных записываются в обе колонки (старую и новую).
3. Заполнение новых данных с помощью команд Artisan для миграции существующих записей.
4. Подготовка плана отката на случай ошибок.
5. Переход на новую структуру после завершения миграции и перехода всех данных.

🔗 Medium

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sun, 27 Jul 2025 16:00:10 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 26 Jul 2025 16:00:00 +0300
🧑‍💻 Что за ужас тут творится

Когда вы приходите в новый коллектив, легко заподозрить, что всё вокруг катится кувырком. Но возможно, вы ещё не разобрались во внутренних механизмах.

К нам пришёл подписчик с вопросом
Как отличить реальные проблемы в компании от простого непонимания процессов и культуры?


На практике важно учитывать сразу несколько аспектов, чтобы не спешить с выводами:

— Обратите внимание на то, как принимаются решения: формально через руководителей или неформально «по знакомству».

— Оцените, насколько корректно используется трекинг задач и документация — это показатель зрелости команды.

— Внимательно слушайте, какие вопросы задают другие: открыты ли коллеги к диалогу или предпочитают «молча работать».

— Спросите про KPI и цели: ясны ли вам критерии успеха и пути их достижения?

Помните, никто не идеален: везде есть проблемы, просто о них не все говорят.

💬 С какими «тревожными звоночками» вы сталкивались в новых командах? Поделитесь в комментариях 👇

P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.

🐸Библиотека пхпшника #междусобойчик
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Sat, 26 Jul 2025 12:00:38 +0300
#memes
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 25 Jul 2025 20:59:58 +0300
🔐 Баг-хантеры, будьте готовы: критическая уязвимость в RainLoop обнаружена!

Недавно один из участников программы Bug Bounty нашёл уязвимость в популярном, но устаревшем почтовом клиенте RainLoop. После быстрого реагирования, Beget принял решение отказаться от использования этого клиента и перевести всех пользователей на поддерживаемое решение.

💥 Как это произошло?
Исследователь, обнаружив уязвимость, нашёл путь для выполнения произвольных команд через уязвимость в функции десериализации. Вскоре стало понятно, что с помощью SSRF можно было бы легко обойти все защиты и получить доступ к конфиденциальным данным. В результате он получил доступ к важной информации пользователей компании, что подняло случай до уровня критической уязвимости.

🎉 Реакция Beget
Компания оперативно отреагировала на баг и даже назначила награду исследователю за его находку. Это подтверждает важность таких инициатив в сфере безопасности.

💡 Выводы
Этот случай ещё раз подтверждает, что старые, казалось бы, заброшенные проекты могут содержать серьёзные угрозы. Важно не останавливаться на достигнутом и постоянно проверять безопасность своих сервисов.

🔗 Хабр

Библиотека пхпшника
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Fri, 25 Jul 2025 10:01:09 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001222195794 Thu, 24 Jul 2025 20:59:58 +0300
Подробнее
]]>