PHP Portal | Программирование
PHP Portal: ваш путь в мир PHP-разработки
Ищете место, где можно развиваться в PHP-разработке? Тогда наш канал — то, что нужно. Присоединяйтесь и получайте актуальные материалы, советы от экспертов и возможность общаться с коллегами. Станьте частью сообщества PHP-разработчиков! #PHP #разработка #портал #обучение #опыт #знания
Публикации канала
Совет по Laravel. Данные, добавленные через Context::add(), передаются вместе с запросом ПОВСЮДУ. Они автоматически добавляются к каждой записи в логах и передаются во все задачи, отправляемые в очередь. Достаточно один раз задать ID тенанта в middleware, а затем получить его внутри задачи. 👉 @PHPgx
Gemini Pro Argon на 1.5 года по цене кофе? Gemini Pro на 18 месяцев можно купить за 6$ (480₽ вместо 30.000₽) - последние 2 дня акции от Jio! > 4.0 Argon топ для вайбкодеров > Nano Banana 2 PRO (картинки) > Видео генерация (видео, нарезки, мувики) > 5 ТБ облака в Google One 🔓Вот бесплатный VPN для работы Gemini и AI Работает акция еще 2 дня по такой цене, дальше будет официальная цена $360 за 18 месяцев Приобрести можно в Магазине с 20.000+ покупок и 2000+ отзывов (есть возвраты и замены).
Forwarded From IT Portal PHP выпустил исправления для двух ранее раскрытых уязвимостей, позволяющих злоумышленникам удалённо выполнять код на серверах без аутентификации. «Полноценных способов защиты, кроме установки обновлений, не существует. Обновление — единственный безопасный вариант» , — заявили разработчики PHP. Необходимо как можно скорее обновиться до PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35. По словам разработчиков, наибольшему риску подвержены серверы Apache с модулем mod_php. Уже продемонстрирован эксплойт, позволяющий выполнить атаку ещё до начала выполнения кода приложения. Для PHP 8.1 и более ранних версий официальные обновления не предусмотрены. Однако разработчики опубликовали исправления исходного кода, адаптированные для PHP 7.4, 8.0 и 8.1. https://www.php.net/archive/2026.php#2026-10-21-5 @IT_Portal
Forwarded From InfoSec Portal Критическая уязвимость в PHP, которая может стать одной из самых серьёзных в истории! Готовьтесь обновлять свои серверы уже сегодня. В 17:00 по московскому времени должен выйти срочный патч, устраняющий две крайне опасные уязвимости. Они потенциально позволяют злоумышленникам удалённо выполнять код на серверах. Хуже всего то, что проблема затрагивает версии PHP с 5-й по 8-ю. В сети уже распространяется предполагаемый эксплойт, поэтому не исключено, что патч выпустят раньше запланированного срока. Если вы используете собственный или арендованный сервер с PHP, WordPress или аналогичными системами, обязательно установите обновление. Судя по сообщениям, одной из первых временных мер защиты может стать отключение отслеживания прогресса загрузки файлов: session.upload_progress.enabled = Off Это позволит частично снизить риск, но не устранит саму уязвимость. Единственным полноценным решением станет обновление PHP сразу после выхода патча. 👉 @cybersecinform Video is too big
Совет по PHP file_exists() возвращает true не только для файлов, но и для директорий. Поэтому, если имя файла пустое, путь указывает на папку, и проверка существования изображения успешно проходит. Используйте is_file(), когда нужно проверить существование именно файла. 👉 @PHPgx
Новый пакет для Laravel sajjadhossainshohag/laravel-lang-cache — ускоряет загрузку переводов в Laravel за счёт кеширования, аналогично конфигурации и маршрутам. С OPcache загрузка может быть до 1600 раз быстрее. https://github.com/sajjadhossainshohag/laravel-lang-cache 👉 @PHPgx
Совет по Laravel Все исходящие HTTP-ответы можно обрабатывать в одном месте с помощью Http::globalResponseMiddleware(). Этот middleware срабатывает для каждого запроса, который делает HTTP-клиент, независимо от того, где он вызывается в приложении. Удобно для логирования или сбора метрик - не нужно менять ни один отдельный вызов. 👉 @PHPgx
Laravel tip Нужно получить все записи, кроме последних 5? skip() сам по себе игнорируется, если после него нет take(). Передайте take(PHP_INT_MAX) — и получите offset без реального ограничения по количеству записей. Удобно для очистки старой истории. 👉 @PHPgx
В Laravel 13.30 появился удобный метод для Collection Использовали chunkWhile(), чтобы просто сгруппировать подряд идущие элементы с одинаковым значением? Теперь это проще делать через chunkBy(). И в отличие от groupBy(), он сохраняет отдельные чанки, если то же значение встречается снова позже. Использовали такой паттерн раньше? 👉 @PHPgx
PHP-совет В числовых литералах можно использовать подчёркивания, чтобы визуально группировать цифры. Пишите 1_000_000 вместо 1000000 - так значение легче читать и не приходится считать нули. PHP убирает подчёркивания на этапе компиляции, поэтому само число остаётся точно таким же 👉 @PHPgx
Он не из наших 👉 @PHPgx
TypePHP вышел в open source раньше запланированного 🎉 Изначально релиз исходников был намечен на октябрь, но проект уже доступен на GitHub. Если тема интересна - стоит заглянуть. https://github.com/swoole/typephp 👉 @PHPgx
Совет по Laravel DB::transaction() принимает второй аргумент – сколько раз повторно выполнить весь callback, если база вернула deadlock Передайте его по имени – attempts: 3, и Laravel попробует выполнить транзакцию до 3 раз вместо того, чтобы сразу завалить запрос 👉 @PHPgx
Полезный пакет для Laravel! MiranSalehi/mksine — основа CMS на Laravel + Filament 5: визуальный page builder, устанавливаемые плагины и темы, хуки, меню, медиабиблиотека, настройки, переводы и отдельная консоль Super Admin. Это Composer-пакет для создания контентных сайтов и расширяемых админок без необходимости форкать Laravel. https://github.com/miransalehi/mksine 👉 @PHPgx
Разработчики на Laravel, Image API стал ещё лучше в Laravel 13.24. Теперь доминирующий цвет изображения можно определить с помощью dominantColor(). Также добавлена поддержка HEIC и дополнительных форматов AVIF, что упрощает работу с изображениями с современных устройств. 👉 @PHPgx
PHP-совет Знали, что дефолтный объект можно создать прямо в параметре конструктора? 👉 @PHPgx
Совет по PHP Перечисляйте в match() все варианты enum и не добавляйте ветку default. Если позже кто-то добавит новый вариант и забудет обновить match(), PHP выбросит UnhandledMatchError, а не молча пропустит его. Так отсутствующий вариант невозможно будет проигнорировать. 👉 @PHPgx
Разработчики на Laravel, теперь тесты валидации email:dns больше не должны зависеть от реального DNS. В Laravel 13.22 добавили возможность подменять DNS-запросы во время валидации. Можно точно задать, какие DNS-записи должны возвращаться, и сделать тесты предсказуемыми - без внешних DNS-запросов. 👉 @PHPgx
Комментарии
Комментариев пока нет
Комментарии пишут вошедшие — так видно, кто автор.
Войти