TGViewer
Channel Public Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib

Все самое полезное для пхпшника в одном канале.

По рекламе: @tproger_sales_bot

Учиться у нас: clc.to/M561SQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Subscribers
10.5K
Photos
1.8K
Videos
31
Links
4.6K

Showing posts older than #5199 · Back to latest

Older Posts 20 shown
Post #5198 2.76K
🔥 Бесплатный курс по фулстек-разработке — реальность

Под Новый год Дед Мороз приносит подарки, а наши подписчики — собственные курсы! Сергей Дмитриев, который занимается коммерческой разработкой уже 15 лет, поделился с нами курсом по созданию веб-сервиса с нуля. В курс входит 141 урок, 28 часов видео, исходный код и чат поддержки для участников.

👉 Подробнее о курсе читайте на Хабре или в телеграм-канале Сергея
  • 🔥 5
  • 😁 2
  • ❤‍🔥 1
Post #5196 2.67K
Чтобы использовать литеральные символы внутри регекса, можно воспользоваться функцией preg_quote(): она добавляет обратную косую черту перед каждым специальным символом в строке. Не забудьте использовать второй аргумент, который может содержать любой произвольный разделитель.

Другой вариант — использовать внутри регекса символы \Q и \E: они превращают все специальные символы в буквенное значение.
  • 👍 9
Post #5195 2.74K
Эффективный рендеринг изображений Base64 в PDF-файлах Laravel с помощью DomPDF

При создании PDF с помощью библиотеки DomPDF в Laravel часто возникают сложности с обработкой изображений. Основная проблема — высокое потребление памяти, особенно если PDF содержит множество изображений. Вот решение, которое позволяет эффективно встраивать изображения в PDF, минимизируя нагрузку на память.

Проблема
DomPDF требует, чтобы изображения были встроены в HTML в виде base64-строк. Однако загрузка нескольких изображений в память одновременно может быстро превысить лимит, установленный для PHP. Это особенно критично при генерации больших документов, таких как каталоги или отчёты.

Решение
Предложенный подход включает:

🔸Обработку изображений небольшими частями (чтобы избежать переполнения памяти).
🔸Гибкую обработку отсутствующих изображений.
🔸Поддержку как локальных, так и удалённых файлов.
🔸Преобразование изображений в формат base64, совместимый с DomPDF.

Основные элементы решения
1. Управление памятью
Перед началом обработки устанавливается разумный лимит памяти, например, 256 МБ. Это позволяет избежать чрезмерного использования ресурсов сервера, оставаясь в рамках допустимых ограничений.

2. Постепенная загрузка изображений
Вместо того чтобы загружать весь файл в память сразу, изображение читается по частям, например, блоками по 8 КБ. Такой подход предотвращает резкий рост потребления памяти, что особенно полезно для работы с большими изображениями.

3. Обработка отсутствующих изображений
Если файл изображения не найден, вместо ошибки возвращается base64-код прозрачного 1x1 пикселя. Это позволяет избежать сбоев в процессе генерации PDF.
  • ❤ 1
  • 👍 1
Post #5194 2.65K

Forwarded from Библиотека собеса по PHP | вопросы с собеседований

Что такое OWASP?

OWASP — это акроним, расшифровывающийся как Open Web Application Security Project.

OWASP — это некоммерческая организация, которая занимается исследованием и обеспечением безопасности веб-приложений. Она обладает обширным контентом, включающим методологии, инструменты, стандарты и руководства по обеспечению безопасности веб-приложений.

В рамках OWASP разработаны множество проектов, включающих в себя руководства по безопасности, топ-10 уязвимостей веб-приложений, инструменты для сканирования и тестирования безопасности, образцы кода и многое другое.

Знание OWASP и умение применять его рекомендации является важным для php-разработчика, так как помогает защитить веб-приложения от распространенных уязвимостей, таких как инъекции SQL, межсайтовый скриптинг (XSS), утечка конфиденциальной информации и другие.
  • 👍 4
  • 🥱 4
Post #5193 2.76K
#memes
  • 😁 29
Post #5192 2.93K
Opis Closure 4.0.0

Этот мажорный релиз представляет собой полную переработку библиотеки и обеспечивает поддержку функций PHP 8.x, таких как атрибуты, перечисления, свойства read-only, именованные параметры и т.д.

#новость
GitHub GitHub - opis/closure: Serialize closures, anonymous classes, and arbitrary data Serialize closures, anonymous classes, and arbitrary data - opis/closure
  • 👍 3
Post #5191 2.58K
  • 🌚 3
  • 👍 1
  • 🔥 1
Post #5186 1.88K
  • 😁 2
  • 🌚 2
Post #5184 1.91K
  • 🌚 3
  • 👍 1
Post #5183 1.9K
  • 🔥 1
  • 🌚 1
  • 👾 1
Post #5181 2.14K
Привет!

Мы хотели бы поближе с вами познакомиться! Будем очень признательны за ваши ответы на следующие вопросы!
Post #5180 2.52K
«Наконец я попробовал Pest для PHP и Laravel, а затем перешел на него.»

Pest — это современный инструмент для тестирования в PHP, созданный в 2021 году Нуну Мадуро, инженером Laravel. Pest быстро стал популярным благодаря своей интеграции с экосистемой Laravel и упрощению процесса тестирования. Основанный на PHPUnit, Pest сохраняет его мощь, но добавляет более удобный и лаконичный синтаксис.

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

Важной частью успеха Pest стала его привлекательная консоль, которая предоставляет четкий и понятный вывод тестов. Pest также поддерживает большинство возможностей PHPUnit, включая провайдеры данных, хуки (аналог setUp и tearDown), фильтрацию и группировку тестов. Однако Pest пошел дальше, предложив функции, которые делают его уникальным:

🔧 Тестирование архитектуры. Позволяет задавать архитектурные правила для кода, например, обязательное использование строгого режима.
📸 Снапшоты. Удобны для проверки неизменности данных.
🚀 Стресс-тестирование. Полезно для проверки производительности приложений.
🛠️ Плагины. Pest активно поддерживает расширяемость, что позволяет добавлять новые функции через сторонние модули.

Эволюция Pest связана с его глубокой интеграцией в Laravel-сообщество. Многие популярные проекты, такие как Spatie, Livewire и Filament, перешли на Pest, что сделало его стандартом де-факто в экосистеме Laravel. Благодаря обратной совместимости с PHPUnit, переход на Pest не требует кардинального изменения существующих тестов, что облегчает его внедрение.

Таким образом, Pest стал не просто альтернативой PHPUnit, а его современной интерпретацией с улучшенным синтаксисом и расширенными возможностями. Если вы разрабатываете на PHP и еще не пробовали Pest, его простота и мощь делают его достойным внимания инструментом.
  • 👍 15
  • 😁 7
  • ❤ 5
  • 🌚 1
Post #5179 2.58K
Будьте осторожны при использовании whereYear; даже если ваш столбец проиндексирован, он не будет использован, и база данных выполнит полное сканирование таблицы. Вместо этого лучше использовать диапазоны 🚀.
  • 👍 11
Post #5178 2.75K
Почему вам стоит задуматься о переходе на PHP 8.4?

В этой статье на медиуме рассматриваются основные причины, по которым вы можете захотеть обновить свои PHP-проекты до версии 8.4.
  • 👍 5
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 →