⌨️ Топ-вакансий по PHP за неделю
Backend Tech Lead / техлид — от 300 000 ₽, Удалёнка (Москва)
PHP разработчик Junior / Middle — от 130 000 ₽, Удаленка (Москва)
PHP-разработчик (Symfony) — от 160 000 ₽, Удалёнка (Москва)
Middle+ php developer — 2,500 — 3,500 $, Гибрид (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Backend Tech Lead / техлид — от 300 000 ₽, Удалёнка (Москва)
PHP разработчик Junior / Middle — от 130 000 ₽, Удаленка (Москва)
PHP-разработчик (Symfony) — от 160 000 ₽, Удалёнка (Москва)
Middle+ php developer — 2,500 — 3,500 $, Гибрид (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
На реддите обсуждают интересный вопрос:
Есть ли ещё open-source IDE, где нет встроенного искусственного интеллекта?
Автор жалуется, что почти каждая современная среда разработки теперь старается «встроить помощника» — автодополнение на базе LLM, AI-чат в сайдбаре, умные подсказки, сбор кода для тренировки моделей и т.д.
Даже если функция выключена — она всё равно где-то рядом.
💬 Вы пользуетесь ИИ фишками в IDE? Или у вас припасён список пока ещё чистых инструментов? Делитесь в комментах 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🙂 В Laravel при создании записей с помощью
Библиотека пхпшника
#vardump
Factories вы можете использовать класс Sequence, чтобы заменить некоторые значения и применить к ним специальную логику.Библиотека пхпшника
#vardump
🥱5👍3
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники
Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!
→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️
Всё! Теперь ты в игре.
👉 Сейчас или никогда!
Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!
→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️
Всё! Теперь ты в игре.
👉 Сейчас или никогда!
🔧 XAMPP и PHP 8.5: Почему обновления идут не синхронно?
В обсуждении на Reddit затрагивается актуальная проблема: PHP 8.5 уже на подходе, а XAMPP до сих пор использует PHP 8.2.
🧩 Почему XAMPP отстаёт?
Отсутствие обновлений: Последняя версия XAMPP с PHP 8.2.12 была выпущена в ноябре 2023 года. С тех пор проект не обновлялся.
Снижение активности: XAMPP давно не обновлялся, и проект, по всей видимости, заморожен.
Проблемы с поддержкой: XAMPP не поддерживает PHP 8.3 и 8.4, что ограничивает возможности разработчиков.
🛠️ Как быть разработчикам?
Можно обновить PHP в XAMPP вручную, но это требует опрделенных навыков. 👉 Ссылка
💬 Ваше мнение
Как вы считаете, стоит ли продолжать использовать XAMPP в 2025 году? Или пришло время переходить на более современные решения?
Библиотека пхпшника
В обсуждении на Reddit затрагивается актуальная проблема: PHP 8.5 уже на подходе, а XAMPP до сих пор использует PHP 8.2.
🧩 Почему XAMPP отстаёт?
Отсутствие обновлений: Последняя версия XAMPP с PHP 8.2.12 была выпущена в ноябре 2023 года. С тех пор проект не обновлялся.
Снижение активности: XAMPP давно не обновлялся, и проект, по всей видимости, заморожен.
Проблемы с поддержкой: XAMPP не поддерживает PHP 8.3 и 8.4, что ограничивает возможности разработчиков.
🛠️ Как быть разработчикам?
Можно обновить PHP в XAMPP вручную, но это требует опрделенных навыков. 👉 Ссылка
💬 Ваше мнение
Как вы считаете, стоит ли продолжать использовать XAMPP в 2025 году? Или пришло время переходить на более современные решения?
Библиотека пхпшника
😁9
Forwarded from Книги для программистов
🙇♂️ Databases & SQL Roadmaps (2025)
Пошаговые гайды по изучению SQL, MongoDB и Redis, а также совершенствованию навыков в администрировании баз данных PostgreSQL.
🔗 Скачать
🐸 Книги для программистов
Пошаговые гайды по изучению SQL, MongoDB и Redis, а также совершенствованию навыков в администрировании баз данных PostgreSQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💻 Подборка новостей по PHP за неделю:
🔹 PHP 8.3.27 и 8.4.14 — свежие обновления с исправлением ошибок и улучшением стабильности. Рекомендуется обновиться, чтобы обеспечить безопасность и надёжность приложений.
🔹 PHP 8.5.0 RC3 — третий релиз-кандидат PHP 8.5. Финальный выпуск всё ближе, команда PHP просит сообщество активно тестировать и сообщать о багах.
🔹Symfony 8.0.0-BETA1 — первая бета-версия Symfony 8.0 уже доступна для тестирования. Это шанс заранее проверить совместимость и оценить новые возможности фреймворка.
🔹 Symfony 7.4 (A Week of Symfony #982) — завершено добавление ключевых функций: внедрён FormFlow для многошаговых форм, улучшен CLI-вывод ошибок, устарели формат fluent PHP и генераторы config builder.
🔹 Symfony 7.3.5 — регулярное обновление текущей ветки с исправлениями и улучшениями.
Библиотека пхпшника
#свежак
🔹 PHP 8.3.27 и 8.4.14 — свежие обновления с исправлением ошибок и улучшением стабильности. Рекомендуется обновиться, чтобы обеспечить безопасность и надёжность приложений.
🔹 PHP 8.5.0 RC3 — третий релиз-кандидат PHP 8.5. Финальный выпуск всё ближе, команда PHP просит сообщество активно тестировать и сообщать о багах.
🔹Symfony 8.0.0-BETA1 — первая бета-версия Symfony 8.0 уже доступна для тестирования. Это шанс заранее проверить совместимость и оценить новые возможности фреймворка.
🔹 Symfony 7.4 (A Week of Symfony #982) — завершено добавление ключевых функций: внедрён FormFlow для многошаговых форм, улучшен CLI-вывод ошибок, устарели формат fluent PHP и генераторы config builder.
🔹 Symfony 7.3.5 — регулярное обновление текущей ветки с исправлениями и улучшениями.
Библиотека пхпшника
#свежак
❤3
💡 Совет по Laravel: Проверьте среду вашего приложения
Нам часто нужно проверять среду приложения. Хотя для этого можно использовать метод environment, Laravel поставляется с элегантными методами
Библиотека пхпшника
#vardump
Нам часто нужно проверять среду приложения. Хотя для этого можно использовать метод environment, Laravel поставляется с элегантными методами
isProduction и isLocal, которые позволяют делать это 🚀.Библиотека пхпшника
#vardump
👍3😁2👏1👾1
Разбираемся с DDD: как проектировать доменный агрегат, чтобы он не стал безразмерным
В больших PHP-проектах на DDD легко скатиться в один «всемогущий» агрегат, который держит всё и сразу. Итог — дорогая гидрация, лишняя память, сложные транзакции. На примере программы лояльности разберём, как держать границы агрегатов в порядке и не платить лишнего.
🔩 Главная мысль
Агрегат — это не «всё доменное сразу», а границы инвариантов, консистентности и транзакционности. Если объект должен меняться атомарно вместе с другим — это сигнал быть в одном агрегате. Если нет — связь по id и отдельные контексты.
Проблема 1: Границы
Чем больше «подтаскиваем» в агрегат, тем выше риск «один агрегат, чтобы править всеми».
✅ Держим в голове 3 правила:
Инварианты — всё, что нужно для их соблюдения, внутри агрегата.
Консистентность — объект никогда не бывает «наполовину валидным».
Транзакционность — меняются вместе ⇒ сохраняются вместе.
📌 Пример: уровни лояльности зависят от валюты начисления. Меняем валюту → должны атомарно сбросить требования уровней. Уровни — часть агрегата LoyaltyProgram.
А вот Discount может жить отдельно, если после активации ПЛ он больше не меняется вместе с программой (связь по id + доменный сервис для применения скидок).
Проблема 2: Цена (память/гидрация)
Десятки тысяч карт + логи изменений в памяти PHP — больно.
🧰 Рабочие варианты:
• Облегчённые структуры вместо коллекций — храним метаданные (id, пути, индексы), а не целые объекты; доменные события обеспечат сохранение нужных сущностей вместе с агрегатом.
• Транзакционность в Application-слое — карты вынимаем из репозитория снаружи, операции делаем через корень агрегата (инварианты в домене, транзакция — в use-case). Минус: немного падает cohesion.
• Ленивые коллекции — коллекция хранит id, при доступе к элементу бросает доменное событие, инфраструктура подгружает объект. Код домена остаётся чистым, гидрация — по требованию.
Чек-лист проектирования агрегата
Инвариант нарушается без X? → X внутри агрегата.
Объекты меняются атомарно? → вместе в агрегате.
Логика «применения» живёт там, где её нельзя обойти клиентским кодом.
Большие коллекции? → метаданные/ленивая загрузка/перенос транзакций в application.
Скидки/внешние сущности? → отделяйте контексты, связывайте по id, при необходимости используйте доменные сервисы.
—
⚠️ Анти-паттерн
«Корневой агрегат знает всё и держит всех» → взрыв памяти, сложные сохранения, нарушение SRP.
💬Обсудим в комментах: где вам приходилось резать агрегат и почему?
🔗 Хабр
Библиотека пхпшника
В больших PHP-проектах на DDD легко скатиться в один «всемогущий» агрегат, который держит всё и сразу. Итог — дорогая гидрация, лишняя память, сложные транзакции. На примере программы лояльности разберём, как держать границы агрегатов в порядке и не платить лишнего.
🔩 Главная мысль
Агрегат — это не «всё доменное сразу», а границы инвариантов, консистентности и транзакционности. Если объект должен меняться атомарно вместе с другим — это сигнал быть в одном агрегате. Если нет — связь по id и отдельные контексты.
Проблема 1: Границы
Чем больше «подтаскиваем» в агрегат, тем выше риск «один агрегат, чтобы править всеми».
✅ Держим в голове 3 правила:
Инварианты — всё, что нужно для их соблюдения, внутри агрегата.
Консистентность — объект никогда не бывает «наполовину валидным».
Транзакционность — меняются вместе ⇒ сохраняются вместе.
📌 Пример: уровни лояльности зависят от валюты начисления. Меняем валюту → должны атомарно сбросить требования уровней. Уровни — часть агрегата LoyaltyProgram.
А вот Discount может жить отдельно, если после активации ПЛ он больше не меняется вместе с программой (связь по id + доменный сервис для применения скидок).
Проблема 2: Цена (память/гидрация)
Десятки тысяч карт + логи изменений в памяти PHP — больно.
🧰 Рабочие варианты:
• Облегчённые структуры вместо коллекций — храним метаданные (id, пути, индексы), а не целые объекты; доменные события обеспечат сохранение нужных сущностей вместе с агрегатом.
• Транзакционность в Application-слое — карты вынимаем из репозитория снаружи, операции делаем через корень агрегата (инварианты в домене, транзакция — в use-case). Минус: немного падает cohesion.
• Ленивые коллекции — коллекция хранит id, при доступе к элементу бросает доменное событие, инфраструктура подгружает объект. Код домена остаётся чистым, гидрация — по требованию.
Чек-лист проектирования агрегата
Инвариант нарушается без X? → X внутри агрегата.
Объекты меняются атомарно? → вместе в агрегате.
Логика «применения» живёт там, где её нельзя обойти клиентским кодом.
Большие коллекции? → метаданные/ленивая загрузка/перенос транзакций в application.
Скидки/внешние сущности? → отделяйте контексты, связывайте по id, при необходимости используйте доменные сервисы.
—
⚠️ Анти-паттерн
«Корневой агрегат знает всё и держит всех» → взрыв памяти, сложные сохранения, нарушение SRP.
💬Обсудим в комментах: где вам приходилось резать агрегат и почему?
🔗 Хабр
Библиотека пхпшника
❤4
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что произойдет, если в PHP файл подключить сам себя с помощью require_once?
Anonymous Quiz
28%
Выдаст ошибку рекурсии
61%
Повторное подключение будет проигнорировано
5%
Создаст бесконечный цикл подключения
6%
Зависит от содержимого файла
⚔️ Encryption vs Hashing в Laravel
🤯 Миф: Laravel использует
На деле — нет.
И вот почему 👇
🔐 APP_KEY отвечает за шифрование (Encryption)
Laravel применяет этот ключ для двустороннего шифрования — данные можно потом расшифровать.
Он защищает:
🔸 cookies
🔸 сессии
🔸 API-токены
🧩 Пример:
Меняете
потому что старые сессии больше нельзя расшифровать.
🧱 Хеширование (Hashing) — совсем другое
Хеш — необратимое преобразование.
Используется для хранения паролей, которые нужно проверить,
но никогда — восстановить.
🧩 Пример:
Laravel по умолчанию использует Bcrypt,
а при логине просто сравнивает хеши.
❗️
Он нужен только для шифрования данных, которые Laravel должен уметь расшифровать.
А
Библиотека пхпшника
🤯 Миф: Laravel использует
APP_KEY для хеширования паролейНа деле — нет.
И вот почему 👇
🔐 APP_KEY отвечает за шифрование (Encryption)
Laravel применяет этот ключ для двустороннего шифрования — данные можно потом расшифровать.
Он защищает:
🔸 cookies
🔸 сессии
🔸 API-токены
🧩 Пример:
Crypt::encryptString($token);
Меняете
APP_KEY → все пользователи выходят из системы,потому что старые сессии больше нельзя расшифровать.
🧱 Хеширование (Hashing) — совсем другое
Хеш — необратимое преобразование.
Используется для хранения паролей, которые нужно проверить,
но никогда — восстановить.
🧩 Пример:
Hash::make('password');Laravel по умолчанию использует Bcrypt,
а при логине просто сравнивает хеши.
❗️
APP_KEY не участвует в хешировании паролей.Он нужен только для шифрования данных, которые Laravel должен уметь расшифровать.
А
Hash::make() создаёт значение, которое невозможно вернуть обратно.Библиотека пхпшника
👍3❤1
📊 Состояние PHP в 2025
По итогам отчёта JetBrains «The State of PHP 2025» (опрос среди 1 720 разработчиков, для которых PHP — основной язык)
🔹 88% респондентов имеют более 3 лет опыта в PHP; самая большая группа — 6–10 лет.
🔹 56% работают в командах из 2–7 человек, 12% — работают самостоятельно.
🔹 58% не планируют переходить с PHP на другой язык в течение следующего года.
🔹 4% начали использовать PHP менее 6 месяцев назад (против 2% годом ранее); 72% работают с PHP более 4 лет.
🧠 Версии языка & экосистема
🔹 PHP 8.x используется у 89% разработчиков; PHP 7.x — 33%; версии 5.6 и раньше — 8%.
🔹 По фреймворкам и CMS: Laravel лидирует — 64%; WordPress — 25%; Symfony — 23%.
💻 Инструменты разработки
🔹 IDE/editor: доля PhpStorm или IntelliJ IDEA с PHP-плагином выросла до 68%; Visual Studio Code — 23%; новые игроки (например, Cursor) — 6%.
🔹 Уровень удовлетворённости: 53% пользователей PhpStorm дали 5★ (максимум), VS Code — 26%.
🔹 Отладка и тесты: 59% используют var_dump-подход, 39% — дебаггер (например, Xdebug).
🔹 Тестирование: PHPUnit — 50%; Pest — 17% (рост на 4 п.п.). Но 32% всё ещё не пишут тесты.
🔹 Инструменты качества кода: PHPStan — 36% (+9 п.п. за год); PHP CS Fixer — 30%; PHP_CodeSniffer — 22%; Rector — 10%. При этом 42% регулярно не используют ни одного такого инструмента.
🤖 ИИ и кодинг
🔹 95% разработчиков хотя бы пробовали AI-инструмент; 80% — используют регулярно.
🔹 Наиболее популярные: ChatGPT — 49% (в 2024 — выше); GitHub Copilot — 29%; JetBrains AI Assistant — 20% (утроился за год!).
🔹 72% планируют попробовать AI-кодинговых агентов в следующем году; только 8% считают, что они едва ли будут. Препятствия: заботы о конфиденциальности данных (44%), вопросы интеллектуальной собственности (24%), нехватка знаний (22%).
🎉 Дополнительно
🔹 FrankenPHP становится проектом, поддерживаемым PHP Foundation, и предлагает асинхронную обработку запросов в PHP.
🔹 В 2025-м языку PHP исполнилось 30 лет; онлайн-событие PHPverse собрало более 26 000 зрителей.
👉 Ссылка на оригинал
Библиотека пхпшника
#свежак
По итогам отчёта JetBrains «The State of PHP 2025» (опрос среди 1 720 разработчиков, для которых PHP — основной язык)
🔹 88% респондентов имеют более 3 лет опыта в PHP; самая большая группа — 6–10 лет.
🔹 56% работают в командах из 2–7 человек, 12% — работают самостоятельно.
🔹 58% не планируют переходить с PHP на другой язык в течение следующего года.
🔹 4% начали использовать PHP менее 6 месяцев назад (против 2% годом ранее); 72% работают с PHP более 4 лет.
🧠 Версии языка & экосистема
🔹 PHP 8.x используется у 89% разработчиков; PHP 7.x — 33%; версии 5.6 и раньше — 8%.
🔹 По фреймворкам и CMS: Laravel лидирует — 64%; WordPress — 25%; Symfony — 23%.
💻 Инструменты разработки
🔹 IDE/editor: доля PhpStorm или IntelliJ IDEA с PHP-плагином выросла до 68%; Visual Studio Code — 23%; новые игроки (например, Cursor) — 6%.
🔹 Уровень удовлетворённости: 53% пользователей PhpStorm дали 5★ (максимум), VS Code — 26%.
🔹 Отладка и тесты: 59% используют var_dump-подход, 39% — дебаггер (например, Xdebug).
🔹 Тестирование: PHPUnit — 50%; Pest — 17% (рост на 4 п.п.). Но 32% всё ещё не пишут тесты.
🔹 Инструменты качества кода: PHPStan — 36% (+9 п.п. за год); PHP CS Fixer — 30%; PHP_CodeSniffer — 22%; Rector — 10%. При этом 42% регулярно не используют ни одного такого инструмента.
🤖 ИИ и кодинг
🔹 95% разработчиков хотя бы пробовали AI-инструмент; 80% — используют регулярно.
🔹 Наиболее популярные: ChatGPT — 49% (в 2024 — выше); GitHub Copilot — 29%; JetBrains AI Assistant — 20% (утроился за год!).
🔹 72% планируют попробовать AI-кодинговых агентов в следующем году; только 8% считают, что они едва ли будут. Препятствия: заботы о конфиденциальности данных (44%), вопросы интеллектуальной собственности (24%), нехватка знаний (22%).
🎉 Дополнительно
🔹 FrankenPHP становится проектом, поддерживаемым PHP Foundation, и предлагает асинхронную обработку запросов в PHP.
🔹 В 2025-м языку PHP исполнилось 30 лет; онлайн-событие PHPverse собрало более 26 000 зрителей.
👉 Ссылка на оригинал
Библиотека пхпшника
#свежак
👍8🥱1
🛰️ How to: настроить Laravel Telescope для отладки и мониторинга
Хотите видеть, что происходит внутри вашего Laravel-приложения — какие запросы приходят, какие SQL выполняются, какие ошибки падают?
Laravel Telescope — это ваш бортовой мониторинг в одном дашборде.
🧭 Что можно смотреть
🔸 Requests — все HTTP-запросы
🔸 Queries — SQL и время выполнения
🔸 Exceptions — полные стектрейсы ошибок
🔸 Jobs, Cache, Mail, Logs — всё, что делает приложение за кадром
👉 Читать статью
Библиотека пхпшника
Хотите видеть, что происходит внутри вашего Laravel-приложения — какие запросы приходят, какие SQL выполняются, какие ошибки падают?
Laravel Telescope — это ваш бортовой мониторинг в одном дашборде.
🧭 Что можно смотреть
🔸 Requests — все HTTP-запросы
🔸 Queries — SQL и время выполнения
🔸 Exceptions — полные стектрейсы ошибок
🔸 Jobs, Cache, Mail, Logs — всё, что делает приложение за кадром
👉 Читать статью
Библиотека пхпшника
👍4
«Мой первый AI-агент на базе Neuron — PHP-агентного фреймворка»
Пока одни спорят, «жив ли PHP», в экосистеме происходит нечто любопытное — появился Neuron, первый enterprise-ready фреймворк для создания AI-агентов на PHP.
Автор статьи — опытный разработчик, который, как и многие, привык к Laravel, Yii и вечному вебу. И вдруг — нейросети, агенты, LLM. Казалось бы, вся движуха где-то между Python и JavaScript. А тут — Neuron, который обещает встроить «разумных» агентов прямо в привычный PHP-проект, без костылей и микросервисов на стороне.
🧠 Что делает Neuron
Neuron — это фреймворк для оркестрации AI-агентов.
Он позволяет:
🔸 подключать языковые модели (OpenAI, Claude и др.);
🔸 определять, какие функции (инструменты) агент может вызывать — от запросов в базу до API-вызовов;
🔸 собирать workflow из нескольких агентов, где каждый решает часть задачи;
🔸 использовать stream-режим для вывода прогресса в реальном времени;
🔸 внедрять человека в цикл («human-in-the-loop»), чтобы агент мог спрашивать совета.
И всё это — на чистом PHP, через Composer и знакомый стек.
⚙️ Примеры применения
🤖 Агент для аналитики — подключается к БД, генерирует отчёты.
👕 Агент-консультант по одежде — берёт данные о погоде и выдает рекомендации.
💬 Агент поддержки — читает обращения клиентов и подсказывает ответы.
📝 SEO-агент — сам скачивает статью, анализирует её и даёт советы по улучшению.
Каждый пример показывает идею: ИИ должен не просто отвечать, а действовать осознанно — как разработчик, у которого есть инструменты и план.
🚀 Почему это важно
До сих пор PHP-мир оставался «в стороне» от AI-революции.
Neuron может это изменить — дать возможность:
🔹 подключать LLM без внешних сервисов на Python;
🔹 строить цепочки агентов, которые работают внутри одного приложения;
🔹 наблюдать и отлаживать их поведение через Inspector.dev.
🔗 Хабр
Библиотека пхпшника
Пока одни спорят, «жив ли PHP», в экосистеме происходит нечто любопытное — появился Neuron, первый enterprise-ready фреймворк для создания AI-агентов на PHP.
Автор статьи — опытный разработчик, который, как и многие, привык к Laravel, Yii и вечному вебу. И вдруг — нейросети, агенты, LLM. Казалось бы, вся движуха где-то между Python и JavaScript. А тут — Neuron, который обещает встроить «разумных» агентов прямо в привычный PHP-проект, без костылей и микросервисов на стороне.
🧠 Что делает Neuron
Neuron — это фреймворк для оркестрации AI-агентов.
Он позволяет:
🔸 подключать языковые модели (OpenAI, Claude и др.);
🔸 определять, какие функции (инструменты) агент может вызывать — от запросов в базу до API-вызовов;
🔸 собирать workflow из нескольких агентов, где каждый решает часть задачи;
🔸 использовать stream-режим для вывода прогресса в реальном времени;
🔸 внедрять человека в цикл («human-in-the-loop»), чтобы агент мог спрашивать совета.
И всё это — на чистом PHP, через Composer и знакомый стек.
⚙️ Примеры применения
🤖 Агент для аналитики — подключается к БД, генерирует отчёты.
👕 Агент-консультант по одежде — берёт данные о погоде и выдает рекомендации.
💬 Агент поддержки — читает обращения клиентов и подсказывает ответы.
📝 SEO-агент — сам скачивает статью, анализирует её и даёт советы по улучшению.
Каждый пример показывает идею: ИИ должен не просто отвечать, а действовать осознанно — как разработчик, у которого есть инструменты и план.
🚀 Почему это важно
До сих пор PHP-мир оставался «в стороне» от AI-революции.
Neuron может это изменить — дать возможность:
🔹 подключать LLM без внешних сервисов на Python;
🔹 строить цепочки агентов, которые работают внутри одного приложения;
🔹 наблюдать и отлаживать их поведение через Inspector.dev.
Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11
🧠 PHP-лайфхак: короткий синтаксис массивов и оператор объединения с null
В PHP часто встречается код вроде этого 👇
Он работает, но выглядит громоздко. Современный PHP предлагает простой приём, которые делают код чище и короче.
⚡️ Null coalescing operator ??
Вместо проверки
Если ключ
Это особенно удобно при работе с конфигами, данными из API или форм.
Библиотека пхпшника
В PHP часто встречается код вроде этого 👇
$array = [];
$value = isset($data['key']) ? $data['key'] : 'default';
Он работает, но выглядит громоздко. Современный PHP предлагает простой приём, которые делают код чище и короче.
⚡️ Null coalescing operator ??
Вместо проверки
isset() можно просто написать:$value = $data['key'] ?? 'default';
Если ключ
'key' не существует или равен null, вернётся 'default'.Это особенно удобно при работе с конфигами, данными из API или форм.
Библиотека пхпшника
🥱12👍7😁4🌚2
💡 Symfony Validator: не только для форм
Большинство PHP-разработчиков используют
🔍 В статье автор показывает, как Validator помогает строить устойчивые API и гибкие правила валидации, не завязанные на базу данных.
🧩 1. DTO вместо Entity
Антипаттерн — принимать в контроллере
Лучше использовать DTO:
🔒 безопасно (нет mass assignment),
🧠 понятно (чёткий контракт API),
🧱 независимо (никакой связи с ORM).
⚙️ 2. Динамическая валидация с Group Sequences
Хочешь, чтобы обязательные поля менялись в зависимости от условий?
Используй
например, если тип аккаунта
🧬 3. Проверка вложенных структур
С
А с
🧠 4. Свои Constraints с DI
Нужна валидация с доступом к базе или API?
Создай свой
Validator в Symfony — это не просто про формы.
Это способ держать бизнес-инварианты в чистом, расширяемом и декларативном виде.
🧠 Применяйте его для DTO, API, микросервисов и любых сложных структур.
Код станет чище, а валидация — надёжнее.
👉 Читать полностью
Библиотека пхпшника
Большинство PHP-разработчиков используют
Validator в Symfony исключительно для проверки сущностей, связанных с формами. Но этот компонент — гораздо мощнее, чем просто NotBlank и Email.🔍 В статье автор показывает, как Validator помогает строить устойчивые API и гибкие правила валидации, не завязанные на базу данных.
🧩 1. DTO вместо Entity
Антипаттерн — принимать в контроллере
Entity.Лучше использовать DTO:
🔒 безопасно (нет mass assignment),
🧠 понятно (чёткий контракт API),
🧱 независимо (никакой связи с ORM).
#[Assert\NotBlank]
#[Assert\Email]
public readonly ?string $email;
⚙️ 2. Динамическая валидация с Group Sequences
Хочешь, чтобы обязательные поля менялись в зависимости от условий?
Используй
GroupSequenceProvider:например, если тип аккаунта
corporate — проверяй companyName, если individual — игнорируй.🧬 3. Проверка вложенных структур
С
#[Valid] можно валидировать коллекции DTO:
#[Assert\Valid]
public array $items = [];
А с
#[Collection] — ассоциативные массивы и JSON-payload’ы.🧠 4. Свои Constraints с DI
Нужна валидация с доступом к базе или API?
Создай свой
ConstraintValidator, инжектни EntityManager или сервис и пиши логику вроде:
if ($repository->findOneBy([$field => $value])) {
$this->context->buildViolation('Already in use')->addViolation();
}
Validator в Symfony — это не просто про формы.
Это способ держать бизнес-инварианты в чистом, расширяемом и декларативном виде.
🧠 Применяйте его для DTO, API, микросервисов и любых сложных структур.
Код станет чище, а валидация — надёжнее.
👉 Читать полностью
Библиотека пхпшника
🔥12
Инженер с 10+ годами опыта провалил интервью, потому что не смог за 45 минут решить задачу на динамическое программирование, которую не видел с универа.
Есть аргументы за решение задач не собеседовании и против.
Никто не будет решать задачки с литкода на работе, но и код с O(n²) вместо O(n log n) сто процентов положит прод под нагрузкой.
Админ один раз перенервничал и забыл как найти середину отрезка на плоскости. Это полностью заруинило ему алгоритмическую секцию.
💬 Как вы думаете — задачи на собесе это ту мач или имеют место быть? Ждём ваше мнение в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Очереди задач: простой способ пакетной обработки
Как работает очередь задач на примере создания миниатюр для видео.
Цель: после загрузки видео оно должно высветиться в виде миниатюры
Как работает очередь задач на примере создания миниатюр для видео.
Цель: после загрузки видео оно должно высветиться в виде миниатюры
👍1