TGViewer
Channel Public Channel
PHP Portal | Программирование

PHP Portal | Программирование

@phpgx

Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Subscribers
4.64K
Photos
426
Videos
20
Links
212

Showing posts older than #341 · Back to latest

Older Posts 17 shown
Post #340 2.74K
Хардкорная игра-тренажёр для PHP-разработчиков

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

Правило всего одно: нужно переписать функцию так, чтобы она вернула true.

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

👉 @PHPgx
  • 👍 13
  • ❤ 3
Post #338 2.01K
Совет по Bug Bounty

Утечка страницы PHP Info.

Открытая страница PHP Info может раскрывать множество конфиденциальных данных — от настроек конфигурации до пользовательских сессионных куки.

Например, в сочетании с XSS это может привести к полному захвату учетной записи.

👉 @PHPgx | #tips
  • 👍 12
  • ❤ 2
  • 😁 1
Post #337 2.05K
Совет по Laravel: Неявное привязывание Enum = чистые и типобезопасные маршруты

Определите enum на основе строки, используйте его в качестве type hint в определении маршрута — и Laravel автоматически проверит сегменты маршрута, возвращая 404 для недопустимых значений.

Элегантно, просто, мощно ✌️

👉 @PHPgx | #tips
  • 👍 13
  • ❤ 2
  • 👎 2
Post #334 2.69K
Ищешь игры, которые помогут тебе выучить и практиковать SQL?

Попробуй SQL Noir — детективная игра по SQL

Пиши запросы, анализируй данные и раскрывай дела!

👉 Попробовать - https://www.sqlnoir.com/
👉 Исходники доступны на GitHub

👉 @PHPgx | #ресурсы
  • 👍 9
  • 😁 1
Post #332 2.37K
При работе с загрузкой изображений в Laravel важно проверять их ширину и высоту.

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

Не проблема! Класс Rule в Laravel позволяет легко валидировать размеры изображения с понятным синтаксисом.

Вот пример кода 👆

👉 @PHPgx | #tips
  • ❤ 10
  • 👍 3
Post #330 2.08K
HTTP/2 vs HTTP/3 — В чем разница?

HTTP/1 появился в 1996 году, а уже в 1997 вышел HTTP/1.1.

Следующий крупный шаг произошел только спустя ~20 лет — в 2015 году был стандартизирован HTTP/2. А в 2022 году официально утвердили HTTP/3.

В чем разница?

HTTP/1.1
✅ Постоянные соединения — повторное использование соединений вместо открытия новых
✅ Потоковая передача (Chunked Transfer) — отправка данных частями вместо ожидания полного ответа
✅ Улучшенное кеширование — заголовки для управления кешем и соединениями
❌ Последовательные запросы — блокируют друг друга (HoL-блокировка на уровне запросов)
❌ Требуется несколько соединений — браузеры открывали несколько TCP-соединений для скорости

HTTP/1.1 заложил фундаментальные механизмы, актуальные и сегодня.

HTTP/2
✅ Мультиплексирование — несколько запросов в одном TCP-соединении
✅ Сжатие заголовков (HPACK) — уменьшение накладных расходов
✅ Приоритизация потоков — критически важные ресурсы загружаются первыми
❌ HoL-блокировка — потерянный пакет блокирует все потоки

HTTP/2 оптимизировал TCP, но остался ограничен его архитектурой.

HTTP/3
✅ Основан на QUIC (UDP) — больше нет узких мест TCP
✅ Независимые потоки — потеря пакетов в одном потоке не мешает другим
✅ Быстрые рукопожатия — транспорт и шифрование настраиваются за один шаг
✅ Обязательное шифрование (TLS 1.3) — безопасность по умолчанию
✅ Миграция соединений — стабильная работа при смене сети

Вывод: HTTP/2 оптимизировал TCP, но HTTP/3 меняет правила игры с QUIC — быстрее, надежнее и безопаснее по умолчанию.

👉 @PHPgx
  • 👍 14
  • ❤ 2
Post #329 2.22K
Vito — это самохостимое веб-приложение для управления серверами и деплоя PHP-приложений.

Поддерживает управление базами данных, настройку файрвола, установку SSL-сертификатов и управление cron-заданиями.

👉 https://github.com/vitodeploy/vito

👉 @PHPgx | #ресурсы
  • 👍 8
  • ❤ 1
Post #327 1.9K
Поскольку в сериализуемом замыкании нельзя использовать $this, рассмотрите возможность вынесения колбэков Bus::batch, основанных на Closure, в отдельные вызываемые (callable) классы.

Этот подход:
🔹Избавляет от необходимости создавать локальные переменные для свойств $this, чтобы сделать их сериализуемыми.
🔹Делает код более чистым, разделяя ответственность.
🔹Переносит логику в отдельный тестируемый класс.

👉 @PHPgx | #tips
  • 👍 4
  • ❤ 2
Post #326 2.02K
URL vs URI vs URN — в чем разница?

🔹 URI (Uniform Resource Identifier)
URI — это строка символов, идентифицирующая ресурс по местоположению, имени или обоим параметрам. Это самый общий идентификатор. URL и URN являются подтипами URI.

🔹 URL (Uniform Resource Locator)
URL — это подтип URI, который указывает, как найти ресурс в сети. Он включает протокол (например, HTTPS), домен и часто путь. URL полностью описывает способ доступа к ресурсу. Например: https://example.com/path/to/resource. URL также может использоваться с другими протоколами, такими как FTP.

🔹 URN (Uniform Resource Name)
URN — это тоже подтип URI, но он идентифицирует ресурс по имени в рамках определенного пространства имен, а не по местоположению. Он использует схему urn. URN не может быть использован для нахождения ресурса. Это глобально уникальный идентификатор, который остается неизменным независимо от местоположения ресурса. Например, urn:isbn:0361450721 идентифицирует книгу по ее ISBN, который остается неизменным, даже если книга хранится в разных местах.

Проще говоря:

🔹URL — это URI, но не всякий URI является URL.
🔹URN — уникальные имена, URL — локаторы, URI объединяет оба типа.

👉 @PHPgx
  • 👍 9
  • ❤ 2
Post #324 1.88K
Начиная с Laravel 11, весь middleware, который мы хотим применить в нашем приложении, необходимо настраивать в файле bootstrap.php.

Если вы переходите с более старой версии Laravel, вот различные методы, которые вам нужно знать для работы с middleware в Laravel 11 и более поздних версиях.

Здорово, что новая структура включает в себя все эти возможности 👍

👉 @PHPgx | #tips
  • 👍 7
  • ❤ 1
Post #320 2.47K
Одна из самых подробных и полезных шпаргалок для Backend-разработчиков на русском языке.

Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё

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

👉 @PHPgx | #ресурсы
  • 👍 9
  • ❤ 5
  • 🔥 2
  • 👀 2
Post #318 1.96K
Часто при демонстрации нашего проекта заинтересованным сторонам мы заполняем базу данных фиктивными данными с помощью библиотеки Faker для PHP.

Но иногда заинтересованным сторонам сложно воспринимать данные, так как по умолчанию библиотека Faker генерирует их в формате локали en_US.

Вот небольшой совет: мы можем изменить локаль для нашего Laravel-приложения с помощью переменной окружения APP_FAKER_LOCALE.

В моем случае я обычно устанавливаю APP_FAKER_LOCALE в ru_RU, после чего Faker начинает генерировать данные, более приближенные к русскому формату.

#laravel #php

👉 @PHPgx | #tips
  • 👍 21
  • ❤ 3
Post #317 2.23K
💡 Совет по PHP для массовой замены строк

Вы можете использовать str_replace(), передавая массивы ключей и значений в качестве параметров, без использования циклов.

Источник этого фрагмента кода: GitHub

👉 @PHPgx | #tips
  • 👍 18
  • ❤ 3
  • 😁 1
Post #315 2.32K
Крутеший ресурс, если хочешь выучить SQL на практике и с нуля

Это интерактивные уроки прямо в браузере, без регистрации и бесплатно. Всё подается шаг за шагом: от базовых запросов до более сложных тем, таких как JOIN и агрегации

Весь процесс строится на упражнениях, так что теорию сразу применяешь на практике

Ссылка: https://sqlbolt.com/

👉 @PHPgx | #ресурсы
  • 👍 8
Post #314 2.15K
🔒 Знаете ли вы, что можно получить список маршрутов, зарегистрированных пакетами в ваших Laravel-приложениях?

Вы можете сделать это, выполнив команду:

php artisan route:list --only-vendor


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

👉 @PHPgx | #tips
  • 👍 14
  • ❤ 1
  • 🤯 1
Post #313 2.46K
Только недавно узнал, что namespace можно использовать как ссылку на текущий неймспейс 🤯

👉 @PHPgx | #tips
  • 👍 14
  • 🤯 8
  • 👀 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →