Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.33K photos
21 videos
26 files
4.02K links
Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: https://proglib.io/w/bca892d6

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🧩 Ваш базовый стек для старта PHP-проекта

Когда стартуешь новый проект, нет времени выбирать идеальные инструменты — хочется просто взять знакомое и начать пилить фичи. У каждого разработчика со временем формируется свой «боевой» набор.

У меня сейчас примерно так:

– Laravel– Laravel Breeze (или Sanctum, если нужен API)– Filament для админки– Spatie-пакеты: roles, media, permissions– Docker с Sail или кастомной сборкой– Tailwind, если есть фронт


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

А у вас как? Что летит в бой первым?

👇 Делитесь своими «must-have» в комментариях!

Библиотека пхпшника #междусобойчик
1
🛠 PhpStorm‑лайфхак: режим «Редактирование HTML внутри PHP-строк»

Если у вас в коде PHP-строка с HTML, просто поставьте курсор внутри неё и нажмите Alt+Enter → выберите Edit HTML content. PhpStorm откроет встроенный HTML‑редактор — с подсветкой, автокомплитом и линтингом внутри IDE.

📌 Всем, кто работает с шаблонами или Email‑шаблонами внутри PHP — это реальная экономия времени!

Попробуйте прямо сейчас — и убедитесь сами 😊

Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Библиотеки для работы с PDF

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

В статье представлены следующие:

FPDF — это простая библиотека для создания PDF-файлов без сторонних зависимостей. Она позволяет генерировать PDF с нуля и проста в освоении, что делает её подходящей для небольших проектов. Недостатки: отсутствие поддержки HTML/CSS и ограниченные возможности, что усложняет создание сложных макетов.

TCPDF расширяет возможности FPDF, добавляя поддержку HTML, Unicode и сложных макетов. Подходит для многоязычных документов, может встраивать баркоды и QR-коды. Однако требует больше памяти и может быть сложна для новичков.

mPDF ориентирована на преобразование HTML в PDF, что упрощает создание документов на основе веб-страниц. Поддерживает шрифты и языки с направлением текста справа налево, но может быть медленной с большими документами и требует значительных ресурсов.

Snappy (wkhtmltopdf) — это обертка для инструмента wkhtmltopdf, известного своей высокой точностью при преобразовании HTML в PDF, включая поддержку JavaScript. Отличается скоростью, но требует установки внешнего инструмента и ориентирован на создание статичных PDF.

PDFParser предназначен для извлечения текста, изображений и метаданных из PDF, а не для их создания. Подходит для индексирования и анализа PDF, однако ограничен в работе со сложными и защищенными файлами.

SetaPDF — коммерческая библиотека с возможностями для заполнения форм, цифровой подписи и шифрования. Подходит для корпоративных приложений с высокими требованиями безопасности, но требует лицензии.

FPDI — расширение для FPDF и TCPDF, которое позволяет импортировать страницы из существующих PDF. Подходит для объединения и редактирования PDF, но не для создания файлов с нуля.

PDFMerger — библиотека для объединения PDF. Проста в использовании и подходит для быстрого объединения нескольких файлов, но не для их редактирования.

Dompdf поддерживает HTML5 и CSS3, что упрощает преобразование веб-страниц в PDF. Подходит для небольших и средних проектов, но может потреблять много ресурсов при обработке сложных макетов.

Краткие рекомендации по выбору

🔸FPDF — для простых PDF с минимальными функциями.

🔸TCPDF — для создания сложных документов с поддержкой HTML и Unicode.

🔸mPDF — для проектов, где PDF создаются на основе HTML.

🔸Snappy — для точного преобразования HTML/CSS в PDF с поддержкой JavaScript.

🔸PDFParser— для извлечения информации из PDF.

🔸SetaPDF — для защищённых корпоративных документов с подписями и шифрованием.

🔸FPDI — для редактирования и объединения PDF.

🔸PDFMerger — для быстрого объединения нескольких PDF.

🔸Dompdf — для проектов, где требуется HTML в простом или среднем формате.

Выбор библиотеки зависит от задач проекта: для конвертации HTML лучше подходят mPDF или Snappy, для безопасной обработки документов — SetaPDF, для простых PDF — FPDF.
6👍3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😏 Сам ты вайб-кодер или как различать термины

Вайб-кодинг — это когда человек не пишет код вообще. Все задачи выполняет ИИ, будь то написание, исправление или чтение кода. Человек может не быть программистом или просто не иметь желания работать с кодом. Важно, что он лишь задаёт «вайб» задачи, а ИИ её решает.

Если вы работаете с инструментом вроде Cursor, используя его функции для создания кода и проверки его результата, то это не вайб-кодинг, а разработка с ИИ-инструментами (AI-assisted coding). Здесь вы, как разработчик, активно взаимодействуете с ИИ, но не теряете контроль над процессом.

А вот когда человек Lovable/v0/Bolt для создания сайта или автоматизации без заглядывания в код — это уже вайб-кодинг. И это прекрасно, потому что даёт возможность создавать решения без необходимости учить программирование. И с каждым годом таких людей будет становиться больше.

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

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

Могли ли вы пару лет назад представить, что такое количество рутины в работе будет автоматизировано?

🐸 Библиотека программиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
3😢1🥱1
💻 Подборка новостей по PHP за неделю:​

🔹 PHP 8.5.0 Alpha 1 — первая альфа-версия новой ветки PHP уже доступна для тестирования. Финальный релиз ожидается в ноябре. Среди новшеств — нативные функции array_first() и array_last().

🔹 Релизы PHP 8.1.33, 8.2.29 и 8.4.10 — это важные обновления безопасности. Рекомендуется обновить текущие установки как можно скорее.

🔹 Symfony 30 июня — 6 июля 2025 года — продолжается активная разработка Symfony 8.0: удаляются устаревшие возможности, классы получают финальный статус. Также опубликованы два кейса использования Symfony в продакшене.

🔹 Laravel: советы по find() и first() — сообщество делится малоизвестными, но полезными приёмами эффективного использования методов find() и first() в Eloquent.

Библиотека пхпшника #свежак
3
☝️ Последний шанс купить курсы Proglib Academy с доступом навсегда!

Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).

Но главное: с 1 августа доступ ко всем новым курсам станет ограниченным. Успейте инвестировать в свои знания на самых выгодных условиях!

👉 Выбрать курс
1
⌨️ Топ-вакансий по PHP за неделю

Backend Team Lead (PHP) — 350 000 —‍ 400 000 ₽ удалёнка (Москва)

Senior PHP Developer (Yii2) — от 4000 $, удалёнка (Калифорния)

Senior PHP разработчик — от 250 000 до 320 000 ₽, Удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
🎮 Балансировка нагрузки для UDP-сервисов

Проблема: необходимо распределить трафик между несколькими UDP-серверами.

Решение: в книге "Nginx Cookbook: Advanced Recipes for High-performance Load Balancing" автор показывает использование модуля stream с параметром udp для балансировки нагрузки на уровне транспортного слоя.

Пример кода:
stream {
upstream ntp {
server ntp1.example.com:123 weight=2;
server ntp2.example.com:123;
}

server {
listen 123 udp;
proxy_pass ntp;
}
}


Преимущества:

— Поддержка балансировки для UDP-сервисов.
— Гибкая настройка весов серверов.
— Резервирование серверов для повышения надёжности.

Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Внедрение зависимостей в PHP: от основ до фреймворков

Если в коде появляются new, которые плодят жёсткие зависимости — пора разобраться с внедрением зависимостей (Dependency Injection) и понять, как работает DI-контейнер.

📌 Что в статье:

🧱 Часть 1: от жёстких связей к своему DI-контейнеру
🔸 Почему Cart не должен сам создавать SimpleCalculator и SimpleStorage
🔸 Как перейти от конкретных реализаций к интерфейсам и внедрению зависимостей через конструктор
🔸 Что такое инверсия зависимостей (DIP) и как DI помогает её реализовать
🔸 Пошаговая реализация собственного DI-контейнера с autowiring: внедрение зависимостей через рефлексию, поддержка singleton/prototype, регистрация скалярных параметров, реализация PSR-11

⚙️ Часть 2: как это делают фреймворки
💡 Symfony
Ручная регистрация, YAML-конфигурации, autowire/autoconfigure — полный контроль.
💡 Laravel
Контейнер Illuminate\Container, удобные bind() и singleton(), быстрая интеграция.
💡 Yii3
Контейнер через массив конфигураций, работа с Reference, интеграция с yiisoft/injector.

🔍 В итоге:
Пошагово разобрано, как перейти от жёстких зависимостей к гибкому DI.
Создан мини-контейнер с поддержкой автосборки зависимостей

📚 Отличный материал для начинающих и тех, кто хочет разобраться в архитектуре фреймворков на более глубоком уровне.

👉 Хабр
👍4🔥2
php-internal/dload

Библиотека предназначена для упрощения процесса загрузки бинарных файлов из релизных активов на GitHub. Это особенно полезно для PHP-проектов, которым необходимо интегрировать сторонние инструменты или зависимости в виде бинарных файлов, таких как компиляторы, утилиты или другие исполнимые файлы.

Основные возможности

🔸 Автоматическая загрузка: DLoad позволяет автоматически скачивать необходимые бинарные файлы из релизных активов GitHub, что упрощает процесс интеграции внешних инструментов в проект.

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

🔸 Интеграция с Composer: DLoad может быть интегрирована с Composer, что позволяет автоматически загружать и обновлять бинарные зависимости при установке или обновлении пакетов.

Применение

DLoad полезна в сценариях, когда проект зависит от внешних бинарных инструментов, которые необходимо интегрировать в процесс сборки или разработки. Это может включать в себя такие задачи, как компиляция, обработка изображений, генерация PDF-файлов и другие операции, требующие использования сторонних исполнимых файлов.

🔗 Github

Библиотека пхпшника #инструменты
🤔3🔥2👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🚀 Давно хотите вкатиться в pet-проект, но все никак не решитесь?

Залетайте на roadmap.sh — там теперь есть раздел с проектами — по фронту, бэку и DevOps.

Идеи подойдут и джунам, и тем, кто уже видел docker-compose.override.yml и не моргнул.

Выбираем проект, дописываем «..., но с AI» — и смело продаем как стартап. Даже если это TODO-лист.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍5🔥1🥰1
😴 Сон на рабочем месте или как сохранить продуктивность

Если вы часто устаете, меняете позу и вам болит спина — эти три секрета для вас:

1. Кресло наше всё

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

2. Power nap — короткий дневной сон

Говорят, Леонардо да Винчи тоже так делал: спал по 20 минут каждые четыре часа, чтобы быстро восстанавливаться. Научитесь засыпать за секунды: включаю фоновую музыку, режим «не беспокоить» на 15-20 минут, откидываете кресло — и спите.

3. Не пропускаем важное

После пробуждения первым делом проверяем уведомления — это помогает не упустить важное. Смотрим чаты задач, потом уже личные.

Такой 15–20 минут сна даёт заряд бодрости работать максимально продуктивно, не отвлекаясь.

А что помогает быть продуктивным вам?

Библиотека пхпшника #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧹 Команда дня: Удаление папки vendor и пересборка зависимостей

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

Иногда при работе с Composer могут возникать проблемы, такие как:

🔸 Ошибки при установке или обновлении зависимостей.
🔸 Конфликты версий пакетов.
🔸 Необходимость сбросить текущее состояние зависимостей и начать с чистого листа.

В таких случаях полезно полностью удалить папку vendor и файл composer.lock, а затем заново установить все зависимости.

🛠️ Шаги для пересборки зависимостей:

Удалите папку vendor и файл composer.lock:

rm -rf vendor composer.lock

Очистите кеш Composer (необязательно, но рекомендуется):

composer clear-cache

Установите зависимости заново:

composer install

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

⚠️ Важные замечания:

Не коммитьте папку vendor в систему контроля версий: Рекомендуется добавлять её в .gitignore, чтобы избежать излишнего увеличения размера репозитория. getcomposer.org

Проблемы с правами доступа: Если после удаления и повторной установки зависимостей возникают ошибки, связанные с правами доступа, убедитесь, что у вас есть необходимые разрешения на запись в директорию проекта.

Когда использовать эту процедуру?
При возникновении ошибок при установке или обновлении зависимостей.

Если вы хотите сбросить текущее состояние зависимостей и начать с чистого листа.

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

Библиотека пхпшника #буст
👍3😁21🤩1
«Как я делала читалку форматов EPUB, FB2, DOCX для онлайн-библиотеки»

Интересная статья про проект для чтения книг в различных форматах

🔗 Хабр
2