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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
20 лет Symfony!

История фреймворка представленная в классном стиле 👉 Клик

Библиотека пхпшника
👍19🥰3
📚 Реляционные базы данных в примерах (2025)

В книге автор собрал все ключевые идеи реляционных СУБД — от понятия данных до логики работы транзакций. Тебя ждет фундаментальная теория и наглядная практика проектирования БД:

▪️таблицы, ключи, связи;
▪️нормальные формы, представления;
▪️триггеры, хранимые процедуры и многое другое в примерах.

🔥 Подойдёт тем, кто:

▪️когда-то изучал базы, но уже все забыл;
▪️имеет узкий практический опыт и хочет расширить знания;
▪️хочет в предельно сжатые сроки начать использовать реляционные БД в работе.

🔗 Скачать
🤞 Поддержать канал бустом

🐸 Книги для программистов
Please open Telegram to view this post
VIEW IN TELEGRAM
6
💻 Подборка новостей по PHP за неделю:​

🔹 PHP 8.5.0 RC2 — второй релиз-кандидат доступен для тестирования. Выход финальной версии всё ближе: разработчиков призывают проверять совместимость и сообщать о багах.

🔹 Closures в константных выражениях (PHP 8.5) — теперь можно использовать замыкания прямо в константах и как значения по умолчанию (например, в атрибутах). Это существенно расширяет выразительность языка.

🔹 Новый URI-экстеншен в PHP 8.5 — в стандартную библиотеку добавлен полноценный парсер URI, соответствующий RFC 3986 и WHATWG URL. Больше не нужно сторонних пакетов для корректного парсинга URL.

🔹 Laravel 12.34 — появился failover queue driver для отказоустойчивости очередей, улучшен полнотекстовый поиск в Scout и добавлена возможность откладывать выполнение HTTP batch-запросов.

🔹 Symfony 13–19 октября — продолжается полировка релизов 7.4 и 8.0, запущен сайт к 20-летию Symfony и опубликована первая статья серии New in Symfony 7.4.

Библиотека пхпшника

#свежак
😍31👏1
💡 Совет по Laravel: Результат команды

Знаете ли вы, что Laravel позволяет определять колбеки, которые будут выполняться в зависимости от результата запланированной задачи? Это помогает регистрировать сбои или выполнять связанные действия в случае успеха 🚀

Библиотека пхпшника

#vardump
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?

Самое время прокачать скиллы и апгрейднуть железо!

Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻

Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!

📚 Среди курсов:

▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.

▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.

▫️ Python, математика для DS, основы IT и другие направления.

👉 Принять участие
😁4👾1
🧩 Enums в Laravel: конец магическим строкам

Если вы когда-либо писали status = 'pending' и потом искали, где же опечатались или где вдруг “Pending” и “pending” трактуются по-разному — добро пожаловать в мир нативных Enums в PHP 8.1.
С выходом Laravel 12 они перестали быть просто “новинкой языка” — это теперь must-have инструмент для чистого, безопасного и предсказуемого кода.

💡 Зачем они нужны

Enums заменяют беспорядок из строк, флагов и констант.
— гарантируют типобезопасность: вы даёте переменной не просто строку, а определённое значение из “набора”.
— код становится само-документируемым: “это состояние” видно из названия enum-класса, а не приходится гуглить что означают разные статусы.
— легче поддержка: менее вероятно, что в коде появится “typo” или неизвестное состояние.
— интеграция с Laravel становится проще: например, enum-кастинг колонок модели, валидация enum-значения — меньше “шаблонного” кода.

🛠 Как мыслить без кода
Представьте: у вас есть список чётких, фиксированных значений — например, “ожидает”, “в работе”, “завершено”, “отменено”.
Раньше: множество строк, массивов, проверки типа if status == 'completed'.
С Enums: “статус задачи” — это не просто строка, это экземпляр типа, который не может быть чем-то другим.
База данных остаётся привычной, интерфейсы — знакомыми, но логика приложения читается лучше.

📊 Что принесёт использование Enums
— меньше ошибок на проде (например: “неверное состояние”),
— лучше автодополнение и подсказки в IDE,
— меньше “магических строк” в коде,
— единое место для описания значений и поведения (если enum-тип расширить методами типа “label” или “сортировка”).
Разработчики отмечают, что применение Enums делает код более выразительным и легче рефакторить.
В контексте Laravel 12 это уже не эксперимент — это один из рекомендуемых подходов.

🎯 Когда начинать?
Если вы ещё не используете Enums, то:
— при новом проекте на Laravel 12/13 — смело включайте их “с самого начала”.
— при рефакторинге старого проекта — начните с ключевых участков: статусы, роли, состояние процесса.
— если используете строковые флаги или массивы “констант” — обратите внимание: Enums может стать шагом к более стабильной архитектуре.

📣 Общее настроение
Enums — это не просто синтаксический сахар. Это шаг к более выразительному, поддерживаемому и устойчивому коду.
Если вы программист-artisan, стремящийся не просто “сделать” приложение, а выстроить его красиво и последовательно — Enums это инструмент, который стоит в арсенале.

🔗 Medium

Библиотека пхпшника
👍31
Архитектура — Dependency Injection & SOLID

Какой принцип SOLID здесь соблюдён?
🧩 Composer scripts vs Makefile — что выбрать для PHP-проектов?

Каждый из нас хоть раз приходил в проект и задавал одни и те же вопросы:
🌀 «Как тут запускаются тесты?»
🌀 «Какой линтер у вас — Pint или PHP-CS-Fixer?»
🌀 «Где вообще список команд?»

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

🔹 Composer scripts — встроенный, лёгкий, без зависимостей.
Идеален для небольших или чисто PHP-проектов.
composer all-check — и всё: Pint, Rector, PHPStan, тесты.
🔹 Makefile — гибкий, мощный, автоматизация на стероидах.
Подходит, если в проекте намешано PHP + JS + Docker + CI/CD.
make all-check — и порядок наведен.

📊 Когда что выбрать
— Monorepo или мультистек → Makefile
— Малый проект или пакет → Composer scripts
💡 Главное — не инструмент, а принцип:
сделай запуск проверок простым, чтобы никто не ленился их запускать.


👉 Читать статью

Библиотека пхпшника

#элементарный_выбор
Парсер JSON

Парсер с нулевыми зависимостями для чтения больших JSON из любого источника с эффективным использованием памяти.

🔗 Github

Библиотека пхпшника

#инструменты
👍5🔥2
🚀 How to: Создать Telegram-бота и отправить сообщения с помощью Laravel 12

В этой статье рассматривается процесс создания Telegram-бота и его интеграции с Laravel 12. Пройдите пошаговую инструкцию по получению API токена, настройке пакета irazasyed/telegram-bot-sdk и отправке сообщений через вашего бота. Этот гайд подойдет как для новичков, так и для опытных разработчиков, желающих добавить функциональность Telegram в свои приложения и улучшить взаимодействие с пользователями.

👉 Ссылка на статью

Библиотека пхпшника
👍1😁1
🎁 Конкурс от Proglib Academy!

Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro

Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.

Чтобы поучаствовать, нужно:

1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.

До 15 ноября, потом всё — поезд (и макбук) уйдёт.

👉 Участвовать в розыгрыше
🚀 Как построить надёжную шину событий с Redis Streams в PHP

Redis Streams давно перестали быть экзотикой и стали нормальным способом передачи событий между сервисами. В PHP есть два популярных подхода для работы с ними: Amp с неблокирующим I/O и Swoole с корутинами. Оба подхода позволяют реализовать устойчивые consumer-группы, ручной ack, автоматическое перенаправление зависших сообщений, backpressure, экспоненциальные ретраи и дед-лейтер.

🛠️ Что строим
Задача — создать шину событий заказов. Продюсер записывает события в orders:events с помощью команды XADD с триммингом. Несколько воркеров читают из consumer-группы orders:cg с использованием XREADGROUP в блокирующем режиме, подтверждают обработку через XACK, а зависшие записи перенаправляются на активного потребителя через XAUTOCLAIM. Если событие стабильно не обрабатывается, оно отправляется в orders:events:dlq и больше не участвует в основном потоке. Мониторинг задержки группы осуществляется через XINFO GROUPS, а хвосты периодически очищаются.

⚙️ Варианты реализации
Amp: Неблокирующее чтение с использованием XREADGROUP, ограничение параллельной обработки с помощью LocalSemaphore, подтверждение XACK пачками. Для подбора зависших сообщений параллельно запускается цикл XAUTOCLAIM.
Swoole: Использование корутин с каналом как семафором, Redis из ext-phpredis. Параллельная обработка ограничивается размером канала.

🔁 Экспоненциальные ретраи
Redis Streams не поддерживают отложенные сообщения, но можно реализовать экспоненциальные ретраи с использованием ZSET. При ошибке вы подтверждаете задачу и кладёте её в ZSET orders:retry со значением score = now + backoffMs. Отдельная корутина периодически извлекает задачи из ZSET и повторно добавляет их в основной стрим с увеличенным счётчиком попыток.

📊 Мониторинг и масштабирование
Для мониторинга используйте команду XINFO GROUPS, чтобы отслеживать количество записей, которые ещё не доставлены группе. Если лаг стабильно растёт, добавляйте консьюмеров. Если лаг «пилит» около нуля, можно уменьшить число воркеров.

🔗 Хабр

Библиотека пхпшника
👍5
🧠 PHP-лайфхак: подключи PHPStan или Psalm для статического анализа

Хочешь ловить баги до запуска кода? Используй статический анализ.
Это инструмент, который проверяет твой PHP-код на ошибки, несоответствия типам и подозрительные конструкции — без выполнения программы.

🔍 Как это работает

🧩 Установи PHPStan:
composer require --dev phpstan/phpstan


Запусти анализ:
./vendor/bin/phpstan analyse src --level=max


--level=max включает максимально строгую проверку.
Можно использовать уровни от 0 до 9 — начни с 5–6, чтобы не утонуть в предупреждениях.

⚡️ Что даёт PHPStan / Psalm

🐞 Находит ошибки типов ещё до запуска кода

🚫 Предупреждает о неиспользуемых переменных и мёртвом коде

🧩 Помогает навести порядок в архитектуре

🔒 Снижает риск багов при рефакторинге

💡 Интеграция с Composer и CI/CD


Добавь команду в composer.json:
"scripts": {
"analyze": "phpstan analyse src --level=max"
}


Теперь можно запускать проверку просто:

composer analyze

А в CI — добавить шаг перед деплоем, чтобы ни один коммит с ошибками типов не ушёл в прод.

🧠 Совет: если проект большой — начни с "--level=5" и постепенно повышай. Так ты постепенно приведёшь код в порядок без боли.

Библиотека пхпшника
🥱1
⌨️ Топ-вакансий по PHP за неделю

Backend Tech Lead / техлид — от 300 000 ₽, Удалёнка (Москва)

PHP разработчик Junior / Middle — от 130 000 ₽, Удаленка (Москва)

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

Middle+ php developer — 2,500 —‍ 3,500 $, Гибрид (Москва)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
👨‍💻 Остались ли IDE без ИИ

На реддите обсуждают интересный вопрос:
Есть ли ещё open-source IDE, где нет встроенного искусственного интеллекта?


Автор жалуется, что почти каждая современная среда разработки теперь старается «встроить помощника» — автодополнение на базе LLM, AI-чат в сайдбаре, умные подсказки, сбор кода для тренировки моделей и т.д.

Даже если функция выключена — она всё равно где-то рядом.

💬 Вы пользуетесь ИИ фишками в IDE? Или у вас припасён список пока ещё чистых инструментов? Делитесь в комментах 👇

🐸 Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🙂 В Laravel при создании записей с помощью Factories вы можете использовать класс Sequence, чтобы заменить некоторые значения и применить к ним специальную логику.

Библиотека пхпшника

#vardump
🥱5👍2
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники

Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!

→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️

Всё! Теперь ты в игре.

👉 Сейчас или никогда!
🔧 XAMPP и PHP 8.5: Почему обновления идут не синхронно?

В обсуждении на Reddit затрагивается актуальная проблема: PHP 8.5 уже на подходе, а XAMPP до сих пор использует PHP 8.2.

🧩 Почему XAMPP отстаёт?

Отсутствие обновлений: Последняя версия XAMPP с PHP 8.2.12 была выпущена в ноябре 2023 года. С тех пор проект не обновлялся.
Снижение активности: XAMPP давно не обновлялся, и проект, по всей видимости, заморожен.
Проблемы с поддержкой: XAMPP не поддерживает PHP 8.3 и 8.4, что ограничивает возможности разработчиков.

🛠️ Как быть разработчикам?

Можно обновить PHP в XAMPP вручную, но это требует опрделенных навыков. 👉 Ссылка

💬 Ваше мнение
Как вы считаете, стоит ли продолжать использовать XAMPP в 2025 году? Или пришло время переходить на более современные решения?

Библиотека пхпшника
😁7