Telegram Web
🆕 PHP 8.4: Новый способ работы с HTML — Dom\HTMLDocument

PHP 8.4 привносит свежесть в старую боль — работу с HTML-документами через DOMDocument. Встречайте: Dom\HTMLDocument из нового пространства имён Dom\*. Он: более совместим со стандартами, работает быстрее, и избавляет от некоторых багов старого DOM.

🧱 Интерфейс знакомый: loadHTML, getElementById, saveHTML — всё на месте. Но не всё так просто:
🚫 Внимание: это не прямой заменитель DOMDocument. Старый и новый классы работают параллельно.

📌 Что нового:
Dom\HTMLDocument::createFromString($html) вместо loadHTML()
Поддержка CSS-селекторов напрямую: querySelector() и querySelectorAll() 🔥
Более строгий парсинг: предупреждения, если нет <!DOCTYPE>, автоматическое добавление <head> и <body>
importLegacyNode() — чтобы не страдать при переносе узлов из старых DOMDocument

Быстрее на лицо:
1 млн итераций:
DOMDocument: ~4.3 сек
Dom\HTMLDocument: ~3.4 сек
🛠️ Документации мало, но JetBrains уже подготовили stubs для PHPStorm. Найдёшь тут:
👉 Github

🎯 В целом — большое улучшение для тех, кто серьёзно работает с HTML в PHP. В будущем ждём больше инструментов и автоматической миграции

🔗 Читать статью
3👍3
🧹 Команда дня: Очистка кеша Composer

composer clear-cache

Зачем это нужно?

Composer кеширует метаданные пакетов и архивы, чтобы ускорять работу. Это удобно, но в некоторых случаях кеш может стать источником проблем:

🔸 обновления зависимостей «не видятся»;

🔸 Composer использует устаревшие версии;

🔸 баги или непредсказуемое поведение при установке/обновлении пакетов.

В таких случаях первое, что стоит попробовать — очистить кеш.

Когда это особенно полезно:

🔹 После смены версии PHP или Composer.
🔹 После редактирования composer.json вручную.
🔹 При сбоях в composer install или composer update.
🔹 Если Composer «видит» зависимости, которых уже нет.

Где живёт кеш?
По умолчанию:
macOS / Linux: ~/.composer/cache
Windows: %LOCALAPPDATA%\Composer\Cache

Хорошо сочетать с полной переустановкой зависимостей:

rm -rf vendor/ composer.lock


composer clear-cache

composer install


Используйте в CI при странных ошибках установки зависимостей.

Если вы используете Docker, убедитесь, что кеш не залипает внутри контейнера.

🧠 Бонус: посмотреть размер кеша

du -sh ~/.composer/cache

Библиотека пхпшника #буст
👍7
5 невероятных новых возможностей в Symfony 7.3 🚀

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

1️⃣ ObjectMapper: минимум шаблонного кода
Маппинг DTO → Entity теперь одной строкой:

$user = $mapper->map($dto, User::class);

А обновление объекта — без боли:

$mapper->map($dto, $user);

2️⃣ Пояснения решений Security Voter'ов
Теперь можно узнать почему отказано в доступе — Symfony выводит причины в профайлер и логи:

$vote?->addReason('Пользователь заблокирован и не может комментировать');

3️⃣ JsonPath: запросы к JSON как XPath к XML
Новый компонент для извлечения и фильтрации JSON-данных:

$crawler->find('$.store.book[?(@.price < 10)]');

Поддержка функций length(), count(), match() и др.

4️⃣ Статические страницы ошибок
Теперь можно сгенерировать HTML-страницы для ошибок (400–511) и отдать их напрямую из nginx:

APP_ENV=prod php bin/console error:dump var/cache/prod/error_pages/

5️⃣ Server-Sent Events — просто
Реализовать стриминг событий на клиент стало легче:

yield new ServerEvent($job->toJson(), type: 'jobs');

Без внешних библиотек и с нативной поддержкой.

🔗 Подробнее — в блоге Symfony.

Библиотека пхпшника #буст
🔥14
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?

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

🧐 Мы проводим исследование, чтобы выяснить:

— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор

Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.

😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
1
Стоит ли изучать Symfony, если вы фрилансер или маленькое агентство?

К нам пришёл вопрос от подписчика:
«Symfony — это только для крупных команд и энтерпрайз-проектов, или его можно смело использовать фрилансерам и маленьким агентствам?»

Anton , PHP-разработчик


Symfony — мощный и гибкий фреймворк, который часто ассоциируется с большими корпоративными проектами. Но стоит ли его учить, если вы — фрилансер или маленькая команда?

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

Обучение Symfony — инвестиция в профессионализм
В отличие от более «opinionated» фреймворков (например, Laravel), Symfony даёт больше контроля и понимания, как устроен PHP-стек изнутри. Это даёт прочный фундамент, который пригодится при росте и переходе к более сложным задачам.

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

Однако, время — главный ресурс
Для простых сайтов и MVP иногда проще взять что-то более лёгкое и быстрое. Но если вы готовы инвестировать время в изучение, Symfony откроет двери к более серьёзным проектам и клиентам.

Что делать?
🔸 Если вы начинаете и хотите быстро запускать проекты — можно рассмотреть более «легковесные» фреймворки.

🔸 Если вы планируете расти, работать с разными клиентами и стремитесь к глубине — Symfony стоит учить и использовать даже в маленьких проектах.

🔸 Комбинируйте: учитесь Symfony на уровне компонентов и используйте именно то, что нужно для конкретной задачи.

💬 А вы что думаете? Используете ли Symfony в фрилансе? Какие плюсы и минусы заметили? Делитесь опытом и советами в комментариях👇

Библиотека пхпшника #междусобойчик
👍9🤔1
🌐 Шпаргалка по ключевым сетевым протоколам и их взаимосвязям

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

Краткие пояснения по схеме:

• IPv4 / IPv6 — сетевые протоколы, определяющие, как устройства находят друг друга в интернете

• ICMP / ICMPv6 — диагностика и контроль (например, команды ping, traceroute)

• TCP / UDP / SCTP / DCCP — транспортные протоколы

• IPSec — безопасность на уровне IP (шифрование, проверка подлинности)

На основе UDP работают:

• DNS — доменные имена
• DHCP — выдача IP-адресов
• SIP — VoIP телефония
• NTP — синхронизация времени
• RIP / RPT — маршрутизация
• QUIC — альтернатива TCP от Google, работает поверх UDP

На основе TCP:

• HTTP / HTTPS — веб-протокол
• SSL/TLS — безопасное соединение
• SSH — защищённый удалённый доступ
• POP / IMAP — получение почты
• RDP / VNC — удалённый рабочий стол
• BGP — обмен маршрутами между провайдерами

💬 На какие темы вы бы хотели увидеть шпаргалки? Напишите свои варианты в комментарии 👇

Библиотека пхпшника #буст
6👍1
Сказ о том, как один программист себе мебель из ДСП на PHP программировал

Автор столкнулся с типичной проблемой — готовая мебель из ДСП редко идеально вписывается в интерьер, функционал и бюджет. Решив взять дело в свои руки, он отказался от визуального проектирования и создал собственную библиотеку для проектировки мебели программным способом.

Основная идея — описывать мебель как набор параллелепипедов с понятными размерами: ширина, высота, глубина. Вместо классического 3D-моделирования с визуальным интерфейсом используется скриптовый подход, где мебель строится и модифицируется через код на PHP. Это упрощает внесение изменений и позволяет генерировать точные схемы для распила.

Для визуализации и рендеринга моделей применяется OpenSCAD — легкий инструмент, который работает с текстовыми файлами, описывающими геометрию. Автор создал библиотеку, которая генерирует SCAD-файлы из PHP-кода, добавляя новые возможности для удобной работы с мебельными деталями и их расположением.

🔗 Хабр
3
🥴 Средний разработчик меняет работу каждые 1,5 года

И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.

Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.

😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство

Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.

🚀 Участвовать в исследовании → https://clc.to/9aaXVg
👍1😁1
👔 Роль крупных компаний в развитии IT-индустрии

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

• Часто за красивыми презентациями и маркетингом скрывается консерватизм. Новые идеи не всегда приживаются, если они угрожают прибыльности или текущим бизнес-моделям.

• В больших организациях бюрократия и формальные процедуры порой загоняют проекты в рамки, где инновации превращаются в рутину и формальность.

• Монополизация рынков и контроль над ключевыми сегментами IT создают барьеры для молодых стартапов и независимых разработчиков.

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

💬 Кто видит в крупных компаниях источник прогресса, а кто — фактор стагнации? Ждём ваши мысли в комментариях 👇

Библиотека пхпшника #междусобойчик
3
💻 Подборка новостей по PHP за неделю:​

🔹 Laravel 12.16 — добавлены новые правила валидации: Rule::contains(), in_array_keys и метод Arr::hasAll(). Всё это повышает выразительность и гибкость при проверке данных.

🔹 Filament на Android — теперь админ-панель Filament можно запускать нативно в Android-приложении благодаря NativePHP.

🔹 Symfony 7.3.0 и 7.2.7 — вышли стабильная версия 7.3 с множеством новых фич (глобальные параметры переводов, атрибуты в консоли и др.) и минорное обновление 7.2.7 с исправлениями.

🔹 Неделя Symfony #961 (26-1 мая 2025 года) — опубликован обзор недели: выпуск 7.3, патчи 6.4.22 и 7.2.7, продолжение публикаций об обновлениях и подготовка к SymfonyOnline.

🔹 Sublime Text 4200 — редактор получил поддержку правой боковой панели, улучшенную подсветку кода и новые синтаксисы для ZSH и TOML.

Библиотека пхпшника #свежак
Вакансии «Библиотеки программиста»

Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.

👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой

Большим плюсом будет навык программирования на каких-либо языках.

Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач

🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
1🥱1
Вызов какой из этих функций значительно увеличит объем используемой памяти (представьте, что мы измеряем пиковое использование памяти до и после вызова функции)?
Вызов какой из этих функций значительно увеличит объем используемой памяти (представьте, что мы измеряем пиковое использование памяти до и после вызова функции)?
Anonymous Quiz
9%
`unset_first` и `add_new`
26%
`add_new`
15%
`get_count` и `unset_first`
28%
`unset_first`
8%
Всех
14%
Никакой
😁3🤔1
⌨️ Топ-вакансий по PHP за неделю

PHP/Go разработчик — от 220 000 до 450 000 ₽ удалёнка (Москва)

Java/PHP-разработчик (Кинопоиск) — от 300 000 ₽, Гибрид (Москва, Санкт-Петербург)

Backend-разработчик (PHP) — от 250 000 до 270 000₽, Гибрид (Санкт-Петербург)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
⬆️ Мониторинг неудачных заданий

Вам когда-нибудь нужно было следить за неудачными заданиями и получать уведомления, когда это происходит? Метод failing позволяет вам сделать именно это

Библиотека пхпшника #буст
🥱3
😡 А вас тоже бесят облачные сервисы?

Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?

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

Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное

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

️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
2025/07/08 18:06:24
Back to Top
HTML Embed Code: