Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Подборка новостей по PHP за неделю:
🔹 JetBrains Junie для PhpStorm — новая эра агентных IDE: Junie способен выполнять объёмные задачи самостоятельно, выводя продуктивность на новый уровень.
🔹 Laravel 12.19 — добавлены атрибут
🔹 Filament v4 Beta — переработанный интерфейс, повышенная производительность, больше контроля при создании интерфейсов. Бета-версия уже доступна для тестирования.
🔹 Symfony 16–22 июня — активная разработка Symfony 7.4 и 8.0: добавлена интеграция с FrankenPHP, удаляются устаревшие функции, улучшена гибкость контроллеров.
Библиотека пхпшника #свежак
🔹 JetBrains Junie для PhpStorm — новая эра агентных IDE: Junie способен выполнять объёмные задачи самостоятельно, выводя продуктивность на новый уровень.
🔹 Laravel 12.19 — добавлены атрибут
UseEloquentBuilder
, каст AsFluent
, middleware FailOnException
для очередей, улучшенные тестовые ассерты и другие нововведения.🔹 Filament v4 Beta — переработанный интерфейс, повышенная производительность, больше контроля при создании интерфейсов. Бета-версия уже доступна для тестирования.
🔹 Symfony 16–22 июня — активная разработка Symfony 7.4 и 8.0: добавлена интеграция с FrankenPHP, удаляются устаревшие функции, улучшена гибкость контроллеров.
Библиотека пхпшника #свежак
Forwarded from Библиотека задач по PHP | тесты, код, задания
Каким будем массив $b после выполнения кода?
Forwarded from Библиотека задач по PHP | тесты, код, задания
Каким будем массив $b после выполнения кода?
Anonymous Quiz
53%
$b = array(4, 5, 6, 1, 2, 3 )
13%
Ошибка
20%
$b = array( 1, 2, 3, 4, 5, 6 )
14%
$b = array( 4, 5, 6 )
Проблема: при обработке больших объемов данных важно не только их собрать, но и правильно структурировать для дальнейшего анализа. Обычные SQL-запросы могут стать громоздкими и сложными, особенно когда речь идет о масштабируемости и производительности.
Решение: в книге «Analytics Engineering with SQL and dbt: Building Meaningful Data Models at Scale» авторы описывают, как использовать dbt (data build tool) для построения и трансформации данных. dbt позволяет создавать чистые, поддерживаемые и легко масштабируемые модели данных, используя простые SQL-запросы, что значительно ускоряет процессы аналитики.
Пример кода:
-- Пример модели dbt для расчета среднего чека по категориям товаров
WITH base AS (
SELECT
category_id,
SUM(order_amount) AS total_sales,
COUNT(DISTINCT order_id) AS total_orders
FROM raw.orders
GROUP BY category_id
)
SELECT
category_id,
total_sales / total_orders AS avg_order_value
FROM base
Преимущества:
— Dbt позволяет быстро разрабатывать и тестировать модели данных, сокращая время от идеи до реализации.
— Подходы, описанные в книге, позволяют строить модели, которые легко масштабируются по мере роста данных.
— Акцент на совместной работе между аналитиками и инженерами способствует более эффективному решению задач.
Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
📏 Единый стиль форматирования кода: как улучшить использование скобок и фигурных скобок в PHP
В статье предлагается новый подход к оформлению синтаксиса в PHP, который основывается на логике языка, а не на исторических привычках из других языков программирования, таких как C или Java. Цель — создать стиль, который будет унифицированным, систематичным, последовательным и лёгким для запоминания.
🔑 Что предложено?
Унификация: одна и та же правило применяется ко всем соответствующим конструкциям — будь то функции, управляющие структуры или вложенные выражения.
Системность: каждое правило следует прямо из синтаксической структуры, а не из лексической категории (ключевое слово, идентификатор и т. д.).
Последовательность: одинаковое обращение с конструкциями без произвольных исключений.
Лёгкость запоминания: устранение контекстных различий и эстетических отличий, не имеющих функционального значения.
📚 Как это работает?
Нет пробела перед открывающимися скобками: Например,
Открывающие фигурные скобки всегда на той же строке, что и управляющая структура: Например,
Закрывающие фигурные скобки на новой строке, выровненные с началом блока.
🚫 Почему стоит отказаться от исторических конвенций?
Ранее использованные в таких стандартах, как PSR-2 и PSR-12, подходы взяли за основу стиль, присущий языкам, подобным C, что ведет к путанице и необходимости запоминать исключения. Например, скобки в функциях и управляющих конструкциях должны располагаться по-разному, хотя структура этих конструкций схожа. Эти отличия не улучшали читаемость кода, а наоборот, только увеличивали когнитивную нагрузку.
🔥 Преимущества нового подхода:
Упрощённое восприятие кода.
Совместимость с инструментами автоматического форматирования, такими как PHP-CS-Fixer или линтеры.
Чистый и вертикально структурированный код, который легче воспринимать.
📈 Специальные случаи: if/elseif/else и try/catch/finally
Предлагается установить правило, что все блоки (например,
💡 Советы для новых конструкций:
Стрелочные функции (fn): не ставить пробел между
Тернарные выражения (? :): использовать скобки для сложных вложенных выражений и ставить пробелы вокруг
👉 Читать статью
В статье предлагается новый подход к оформлению синтаксиса в PHP, который основывается на логике языка, а не на исторических привычках из других языков программирования, таких как C или Java. Цель — создать стиль, который будет унифицированным, систематичным, последовательным и лёгким для запоминания.
🔑 Что предложено?
Унификация: одна и та же правило применяется ко всем соответствующим конструкциям — будь то функции, управляющие структуры или вложенные выражения.
Системность: каждое правило следует прямо из синтаксической структуры, а не из лексической категории (ключевое слово, идентификатор и т. д.).
Последовательность: одинаковое обращение с конструкциями без произвольных исключений.
Лёгкость запоминания: устранение контекстных различий и эстетических отличий, не имеющих функционального значения.
📚 Как это работает?
Нет пробела перед открывающимися скобками: Например,
if($x)
и while($y)
— это всегда одно правило, независимо от того, является ли конструкция управляющей или функцией.Открывающие фигурные скобки всегда на той же строке, что и управляющая структура: Например,
function foo() {
или if($x) {
.Закрывающие фигурные скобки на новой строке, выровненные с началом блока.
🚫 Почему стоит отказаться от исторических конвенций?
Ранее использованные в таких стандартах, как PSR-2 и PSR-12, подходы взяли за основу стиль, присущий языкам, подобным C, что ведет к путанице и необходимости запоминать исключения. Например, скобки в функциях и управляющих конструкциях должны располагаться по-разному, хотя структура этих конструкций схожа. Эти отличия не улучшали читаемость кода, а наоборот, только увеличивали когнитивную нагрузку.
🔥 Преимущества нового подхода:
Упрощённое восприятие кода.
Совместимость с инструментами автоматического форматирования, такими как PHP-CS-Fixer или линтеры.
Чистый и вертикально структурированный код, который легче воспринимать.
📈 Специальные случаи: if/elseif/else и try/catch/finally
Предлагается установить правило, что все блоки (например,
if
, elseif
, else
, try
, catch
, finally
) должны начинаться с новой строки после закрывающей фигурной скобки предыдущего блока. Это улучшает структуру и читабельность кода, делая его более понятным и логичным.💡 Советы для новых конструкций:
Стрелочные функции (fn): не ставить пробел между
fn
и открывающей скобкой.Тернарные выражения (? :): использовать скобки для сложных вложенных выражений и ставить пробелы вокруг
?
и :
.👉 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
🛠️ Система очередей и Job'ов Laravel: От создания таблицы до развертывания в продакшене
Очереди в Laravel — незаменимый инструмент для обработки ресурсоёмких задач в фоне: отправка писем, обработка видео, нотификации и многое другое. В этой статье мы пошагово разберём весь процесс работы с job'ами — от создания нужных таблиц до запуска очередей в продакшене через Supervisor. Вы узнаете, как отслеживать и повторно запускать проваленные задания, автоматически чистить старые, настраивать задержки и количество попыток, а также использовать батчи для групповых операций. Если вы хотите уверенно управлять фоновыми задачами в Laravel — этот гайд станет вашей настольной инструкцией.
👉 Читать статью
Библиотека пхпшника
Очереди в Laravel — незаменимый инструмент для обработки ресурсоёмких задач в фоне: отправка писем, обработка видео, нотификации и многое другое. В этой статье мы пошагово разберём весь процесс работы с job'ами — от создания нужных таблиц до запуска очередей в продакшене через Supervisor. Вы узнаете, как отслеживать и повторно запускать проваленные задания, автоматически чистить старые, настраивать задержки и количество попыток, а также использовать батчи для групповых операций. Если вы хотите уверенно управлять фоновыми задачами в Laravel — этот гайд станет вашей настольной инструкцией.
👉 Читать статью
Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
Прописаны все виды команд JOIN, а также их визуал.
Крайне полезная штука — сохраняем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Сегодня стартует курс по AI-агентам!
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
🐞 Холивар: var_dump vs. xdebug vs. логирование
Каждый разработчик сталкивался с вопросом: как лучше всего дебажить код? Вариантов несколько — но какой подход реально работает?
🔍 var_dump — Когда хочется быстрого ответа
Самый быстрый способ отследить значения переменных. Просто пихаем
Плюсы:
Простой, быстрый и не требует дополнительных настроек.
Отлично работает для небольших участков кода.
Минусы:
Запутает вывод, если переменных много.
Не даёт достаточной информации для глубокого анализа, не всегда удобен для сложных структур.
🧩 xdebug — Когда хочется всего и сразу
Плагин для отладки с множеством функций: стэк-трейсы, брейкпоинты, профилирование, и даже код-coverage.
Плюсы:
Полноценная отладка с возможностью пошагового выполнения.
Логирование запросов и удобный просмотр значений переменных.
Минусы:
Может замедлять выполнение кода (особенно на production).
Требует конфигурации и настройки среды.
📝 Логирование — Когда нужно запомнить всё
Для серьёзных проектов — это must-have. Логи помогут отслеживать ошибки, операции и диагностировать проблемы в проде.
Плюсы:
Логи могут быть структурированы, что удобно для поиска и анализа.
В реальном времени можно отслеживать важные события.
Минусы:
Может быть сложнее настроить по сравнению с
Для полноценного логирования нужно грамотно настроить уровни логирования и фильтрацию.
💬 Какой метод предпочитаете вы?
Пишите в комментариях, как вы дебажите свой код: через
Библиотека пхпшника #междусобойчик
Каждый разработчик сталкивался с вопросом: как лучше всего дебажить код? Вариантов несколько — но какой подход реально работает?
🔍 var_dump — Когда хочется быстрого ответа
Самый быстрый способ отследить значения переменных. Просто пихаем
var_dump()
в код, и вот вам вся информация.Плюсы:
Простой, быстрый и не требует дополнительных настроек.
Отлично работает для небольших участков кода.
Минусы:
Запутает вывод, если переменных много.
Не даёт достаточной информации для глубокого анализа, не всегда удобен для сложных структур.
🧩 xdebug — Когда хочется всего и сразу
Плагин для отладки с множеством функций: стэк-трейсы, брейкпоинты, профилирование, и даже код-coverage.
Плюсы:
Полноценная отладка с возможностью пошагового выполнения.
Логирование запросов и удобный просмотр значений переменных.
Минусы:
Может замедлять выполнение кода (особенно на production).
Требует конфигурации и настройки среды.
📝 Логирование — Когда нужно запомнить всё
Для серьёзных проектов — это must-have. Логи помогут отслеживать ошибки, операции и диагностировать проблемы в проде.
Плюсы:
Логи могут быть структурированы, что удобно для поиска и анализа.
В реальном времени можно отслеживать важные события.
Минусы:
Может быть сложнее настроить по сравнению с
var_dump()
.Для полноценного логирования нужно грамотно настроить уровни логирования и фильтрацию.
💬 Какой метод предпочитаете вы?
Пишите в комментариях, как вы дебажите свой код: через
var_dump()
, полную отладку с xdebug, или используете логирование? Или может, у вас есть свой секретный способ?Библиотека пхпшника #междусобойчик
php-datatypes
Эта библиотека представляет гибкий, но строгий способ работы с примитивными типами данных, такими как целые числа, плавающие и строки, в PHP. Она делает акцент на безопасности типов и точности, поддерживая операции для подписанных и беззнаковых целых чисел (Int8, UInt8 и т.д.) и различных форматов с плавающей точкой (Float32, Float64 и т.д.).
Для чего это нужно:
🟢Безопасность типов: Явно определяя типы данных, например UInt8, вы устраняете риск проникновения недопустимых значений в ваше приложение. Например, использование целых чисел без знака гарантирует, что значение останется в допустимых диапазонах, обеспечивая защиту от неожиданного ввода данных.
🟢Точность: Работа с точными значениями, особенно с числами с плавающей точкой, может быть сложной в PHP из-за того, как он управляет плавающими числами нативно.
🟢Защита диапазонов: Указывая точные диапазоны, вы можете предотвратить такие проблемы, как переполнение или недополнение, которые часто остаются незамеченными в языках с динамической типизацией.
🟢Удобство чтения и обслуживания: Явные типы данных улучшают читаемость кода. Когда разработчик читает ваш код, он сразу же понимает, какой тип значения ожидается и какие ограничения на него накладываются. Это повышает удобство сопровождения в долгосрочной перспективе.
🔗 Github
Эта библиотека представляет гибкий, но строгий способ работы с примитивными типами данных, такими как целые числа, плавающие и строки, в PHP. Она делает акцент на безопасности типов и точности, поддерживая операции для подписанных и беззнаковых целых чисел (Int8, UInt8 и т.д.) и различных форматов с плавающей точкой (Float32, Float64 и т.д.).
Для чего это нужно:
🟢Безопасность типов: Явно определяя типы данных, например UInt8, вы устраняете риск проникновения недопустимых значений в ваше приложение. Например, использование целых чисел без знака гарантирует, что значение останется в допустимых диапазонах, обеспечивая защиту от неожиданного ввода данных.
🟢Точность: Работа с точными значениями, особенно с числами с плавающей точкой, может быть сложной в PHP из-за того, как он управляет плавающими числами нативно.
🟢Защита диапазонов: Указывая точные диапазоны, вы можете предотвратить такие проблемы, как переполнение или недополнение, которые часто остаются незамеченными в языках с динамической типизацией.
🟢Удобство чтения и обслуживания: Явные типы данных улучшают читаемость кода. Когда разработчик читает ваш код, он сразу же понимает, какой тип значения ожидается и какие ограничения на него накладываются. Это повышает удобство сопровождения в долгосрочной перспективе.
🔗 Github
Forwarded from Библиотека задач по PHP | тесты, код, задания
Какая функция ищет последнее вхождение символа в строку?
Anonymous Quiz
21%
strpos()
12%
strtr()
58%
strrpos()
9%
substr()
⌨️ Топ-вакансий по PHP за неделю
Team Lead PHP — от 3000 до 3100 $ удалёнка (Москва)
Senior PHP Developer — от 250 000 до 400 000 ₽, Гибрид (Москва)
PHP разработчик — от 1500 до 2000 $, Удалёнка (Москва)
PHP разработчик (Symfony) — от 160 000 ₽, Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Team Lead PHP — от 3000 до 3100 $ удалёнка (Москва)
Senior PHP Developer — от 250 000 до 400 000 ₽, Гибрид (Москва)
PHP разработчик — от 1500 до 2000 $, Удалёнка (Москва)
PHP разработчик (Symfony) — от 160 000 ₽, Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs