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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
📚 Learn Docker in a Month of Lunches, 2nd Edition (2025)

Книга учит основам работы с Docker за 22 коротких урока, каждый из которых можно пройти за один обед. Да, без ночных марафонов с документацией.

Что разберешь:

🔹 Как запускать приложения в контейнерах на Linux, Windows и macOS. И наконец перестать писать «ну у меня локально работает».

🔹 Создание и публикация Docker-образов. Собрать → упаковать → отправить в реестр — без магии и слёз.

🔹 Мультиконтейнерные приложения. Docker Compose и Kubernetes как инструменты, а не загадочные существа.

🔹 Наблюдаемость. Как добавить метрики и логи, чтобы понимать, что происходит внутри контейнера.

🔹 CI/CD и облака. Запуск контейнеров в Azure и GCP, деплой через GitHub Actions — практично, коротко, по делу.

🔹 Работа с легаси. Да, можно упаковать Windows-приложение в контейнер и не переписывать всё с нуля.

🔹 Оптимизация образов. Скорость, безопасность и размер — чтобы твой Dockerfile не выглядел как мамонт.

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

🔗 Скачать

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Книги для программистов | Поддержать бустом
Please open Telegram to view this post
VIEW IN TELEGRAM
1
PHP-разработчик в мире AI: создаём агентов и внедряем в прод 🐘

Думали, AI — это только Python? На самом деле, главное — это архитектура и API. Мы научим вас строить мультиагентные системы, которые усилят любой проект.

Чему вы научитесь:

— строить «мозг» агента с помощью паттерна ReAct;
— оркестровать процессы в удобном интерфейсе n8n;
— соединять агентов в команды через CrewAI и AutoGen;
— внедрять RAG для поиска по базам знаний за миллисекунды.

Станьте тем, кто не просто пишет код, а создаёт автономные интеллектуальные системы.

Узнать подробности 🚀
💡Совет по Laravel: Отказ как «Не найдено»

При определении шлюзов или политик из соображений безопасности мы часто предпочитаем возвращать код 404 вместо 403. Laravel предоставляет для этой цели метод denyAsNotFound() 🚀

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

#vardump
🥱9👍2
🚀 Variable Scope, References, Closures & use в PHP

Граница между «пользователем фреймворка» и инженером, который понимает язык.
Если PHP для вас — не только Laravel-контроллеры, эти концепции обязательны. Они напрямую влияют на читаемость, баги и архитектуру кода.

🧠 1. Область видимости (Scope)
Где переменная живёт и умирает.
Local — существует только внутри функции
Global — доступна везде, но требует global (плохая практика)
Static — локальная, но помнит состояние между вызовами
📌 Static — ключ к счётчикам, генераторам ID, singleton-паттернам
Global — почти всегда архитектурный запах

🔗 2. Ссылки (&) — работа с оригинальными данными
По умолчанию PHP копирует значения.
С & — вы работаете с той же памятью.
• Передача аргументов по ссылке
• Алиасы переменных
• Опасность в foreach (&$v)обязательно unset($v)
📌 Используйте осознанно. Ссылки — мощный, но острый инструмент.

🧩 3. Closures — функции с памятью
Анонимные функции, которые можно:
• передавать
• хранить
• выполнять позже
И главное — они помнят контекст, где были созданы.

🎯 4. use — захват переменных
Closure не видит внешний scope автоматически.
use ($var) — захват по значению
use (&$var) — захват по ссылке
📌 Это основа колбеков, фильтров, middleware, event-handlers.

📍 5. Лексическая область видимости
Правило простое, но критичное:
Closure использует переменные из места создания,
а не из места выполнения.

Это объясняет 90% «магических» багов с колбеками.

💻 6. Реальный кейс
array_filter, array_map, usort — без closures + use они бесполезны.
Динамические условия, конфигурации, runtime-логика — всё строится на этом.

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

Библиотека пхпшника
🥱42🔥1
Как синхронизировать блокчейн и базу данных без расхождений

Одна из ключевых проблем блокчейн-бэкенда — точно отразить on-chain состояние в off-chain базе.
Не «примерно», не «потом поправим», а один в один.

В статье разобран production-подход на PHP:
— создание off-chain сущности до вызова блокчейна
— ожидание подтверждения транзакции в Soroban
— декодирование XDR через Stellar SDK
— корректная работа с I128, timestamp и enum
— маппинг результата смарт-контракта в Doctrine entity
— фиксация как успешных, так и failed-транзакций

Если вы строите off-chain логику поверх Stellar — это обязательный паттерн, а не опция.

🔗 Читать статью

Библиотека пхпшника
1
🗂️Библиотека: разделение базового файла PHPStan

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

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

🔸Разделение базового файла: Пакет разбивает общий файл phpstan-baseline.neon на отдельные файлы в директории baselines/, где каждый файл соответствует конкретному идентификатору ошибки.

🔸Поддержка форматов: Поддерживаются как форматы neon, так и php для базовых файлов.

🔗 GitHub

#инструменты
👍31😁1
How to: Web3 на PHP (Symfony 7.4) — без магии и костылей

Миф «PHP умер» не подтверждается уже больше десяти лет.
Миф «PHP не подходит для Web3» — из той же категории.

Пока Node.js доминирует во фронтенде dApp’ов, PHP + Symfony стабильно закрывают инфраструктурную часть Web3:
🔸 индексируют on-chain данные в off-chain хранилищах
🔸 управляют enterprise-кошельками и ключами
🔸 связывают Web2-бизнес-логику с Web3-протоколами

В статье разобрана production-ready Web3-интеграция на Symfony 7.4 и PHP 8.3+:
🔹 работа с блокчейном через JSON-RPC
🔹 взаимодействие с ERC-20 контрактами
🔹 аутентификация через Sign-In with Ethereum (без паролей)
🔹 обработка on-chain событий через Symfony Messenger

👉 Полный разбор архитектуры и кода — в статье

Библиотека пхпшника
👍4🥰2
Хуки свойств в PHP: геттеры и сеттеры не нужны

В PHP 8.4 появилась долгожданная возможность — хуки свойств.
Это встроенная логика чтения и записи значения прямо в объявлении свойства. Без отдельных методов, без шаблонных getSomething() и setSomething().
Код становится компактнее, выразительнее и проще для сопровождения.

🤔 В чём была проблема раньше
До этого у разработчиков было всего два варианта:
🧱 классический подход с приватными полями и методами доступа;
⚙️ promoted-properties из конструктора — удобно, но без логики.
Минус был общий:
негде аккуратно разместить валидацию;
сложно добавить логирование изменений;
неудобно реализовать ленивые вычисления;
класс быстро разрастался вспомогательными методами.

Что изменилось с хуками
Теперь PHP позволяет перехватывать:
👀 момент чтения свойства;
✍️ момент записи значения.

При этом:
📌 снаружи используется привычный доступ к свойству;
🧠 внутри — чётко определённое место для логики;
🧩 в одном классе можно сочетать обычные свойства и свойства с хуками.

🧮 Виртуальные свойства
PHP 8.4 позволяет создавать свойства без собственного хранилища.

Такие свойства:
🪄 не занимают память;
🔄 вычисляются при каждом обращении;
🧩 выступают как интерфейс к другим данным объекта.

Полезно для:
объединённых представлений данных;
вычисляемых значений;
упрощения публичного API модели.

🧬 Наследование и контроль поведения
Хуки полностью поддерживают наследование:
🔁 поведение можно расширять или переопределять;
🔒 отдельные хуки можно пометить как final;
🧱 контроль инвариантов остаётся на стороне базового класса.
По возможностям это сопоставимо с методами, но на уровне свойств.

⚠️ Важные ограничения
Есть особенности, которые важно учитывать:
🚫 хуки несовместимы с readonly-свойствами;
🔗 изменение по ссылке может обойти логику записи;
🧪 не все внутренние функции PHP вызывают хуки одинаково.
Это не ошибки, а архитектурные компромиссы.

🔗 Хабр

Библиотека пхпшника
4
🎄 С Новым годом, коллеги!

Этот год был насыщенным: релизы, оптимизации, неожиданные баги, долгожданные фичи и много практики с реальными проектами на PHP. Экосистема продолжает развиваться — язык взрослеет, инструменты становятся стабильнее, а требования к качеству кода только растут.

Небольшое напоминание на праздники
Коллеги, давайте в эти дни немного выдохнем.
🧠 Переключимся от дедлайнов и продакшена
Дадим мозгу восстановиться
📚 И, самое главное, спокойно вспомним лучшие посты этого года, начиная с завтрашнего дня

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

Спасибо, что читаете, обсуждаете и думаете вместе.
Хороших праздников, чистого кода и спокойных логов 🎆

Библиотека пхпшника
👍8🎉83
🚀 Pipe operator в PHP 8.5 — меньше вложенности, больше читаемости

PHP 8.5 завез мощную штуку — оператор пайпа (|>), и это реально меняет стиль кода.

Раньше:

$result = trim(str_shuffle(strtoupper("Hello World")));


Или ещё хуже — с кучей временных переменных:

$result = "Hello World";
$result = strtoupper($result);
$result = str_shuffle($result);
$result = trim($result);

Теперь:
$result = strtoupper("Hello World")
|> str_shuffle(...)
|> trim(...);

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

🎯 Реальный пример: обработка email'а из формы

$result = $_REQUEST['email']
|> fn($e) => strtolower($e)
|> fn($e) => filter_var($e, FILTER_VALIDATE_EMAIL)
|> fn($e) => sendEmail($e, "Welcome!");

echo $result ? "Sent!" : "Error";

🔥 Минимум шума, максимум сути.

Pipe — мелкая синтаксическая штука, но она делает код ближе к тому, как вы мыслите.
С PHP 8.5 пишем как люди.

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

#лучшее2025
Please open Telegram to view this post
VIEW IN TELEGRAM
24🤔5🥱1
💾 Новый тренажёр по SQL

Разработчик создал SQL Noir — интерактивную детективную игру, где расследования ведутся с помощью SQL-запросов.

Погружаешься в сюжет и решаешь загадки с реальными SQL-запросами.

🔗 Ссылка

#лучшее2025
10👍5
Laravel: Менее известные, но полезные команды Composer

Composer — это основной инструмент для управления зависимостями в PHP. Если вы работаете с Laravel, то наверняка уже знакомы с такими командами, как composer install и composer update. Однако у Composer есть менее известные, но очень полезные команды, которые могут значительно упростить вашу работу над проектом.

1. composer outdated
Эта команда показывает, какие зависимости вашего проекта устарели. Она выводит список всех пакетов, для которых доступны более новые версии, указывая текущую и последнюю версии. Это удобный способ следить за обновлениями и безопасностью проекта без необходимости сразу обновлять все пакеты.

2. composer show
С помощью этой команды можно получить подробную информацию обо всех установленных пакетах. Кроме того, если указать конкретное имя пакета, можно узнать его описание, текущую версию и зависимости. Например:

composer show backpack/crud

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

3. composer why
Если вы хотите понять, почему определённый пакет установлен в проекте, используйте команду composer why. Она покажет, какие зависимости требуют установки данного пакета. Это особенно полезно для анализа сложной цепочки зависимостей.

4. composer licenses
Для проверки лицензий всех установленных зависимостей существует команда composer licenses. Она помогает убедиться, что все используемые пакеты соответствуют необходимым требованиям по лицензированию, что особенно важно при работе с открытым исходным кодом.

5. composer check-platform-reqs
При работе на разных платформах может возникнуть необходимость убедиться, что все необходимые расширения PHP установлены. Команда composer check-platform-reqs проверяет, соответствует ли ваша система требованиям, указанным в composer.json. Она также проверяет версию PHP и расширения.

#лучшее2025
😁4👍32
👔💼 Как ответить на собеседовании, почему вы уволились с прошлого места работы: 9 вариантов ответа

А также примеры того, как говорить точно не надо 🌚

👉Читать

#лучшее2025
1
PHP и AI-агенты: современный стек для 2026 года

Думаешь, AI — это только про Python? Современный PHP-разработчик должен уметь интегрировать автономные системы в свои проекты. Пока все празднуют, изучи то, что выделит тебя на рынке в новом году.

На курсе «Разработка AI-агентов» ты научишься:

— строить ReAct-агентов, которые сами выполняют задачи;
— оркестровать флоу через n8n и связывать их с PHP-бэкендом;
— внедрять протокол MCP для командной работы агентов;
— использовать RAG для поиска по документации.

🎄 До 12 января забирай курс в рамках акции «3 в 1» (ещё 2 курса в подарок).

Апгрейднуть карьеру
🔗Реализация паттерна Chain of Responsibility на примере котиков в PHP

Если вы когда‑нибудь пытались настроить бизнес‑логику в своём проекте так, чтобы она не выглядела как свалка if-else и работала хорошо, то этот материал для вас.

Сегодня вы узнаете один из самых приятных паттернов — Chain of Responsibility, или «Цепочка обязанностей».

👉Хабр

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

#лучшее2025
1🤔1
PVM — менеджер версий PHP

Простой bash-скрипт для управления несколькими версиями PHP в Unix-системах(в том числе MacOS).

Установка через Curl:
curl -o /usr/local/bin/pvm https://raw.githubusercontent.com/smoqadam/pvm/main/pvm
chmod +x /usr/local/bin/pvm
export PATH="$HOME/.pvm/current:$PATH»

🔗Github

#лучшее2025
👍61👾1