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

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

رفتن به کانال در Telegram

Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

نمایش بیشتر

📈 تحلیل کانال تلگرام Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

کانال Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 10 699 مشترک است و جایگاه 11 619 را در دسته فناوری و برنامه‌ها و رتبه 61 433 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 699 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 07 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -47 و در ۲۴ ساعت گذشته برابر -7 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 15.28% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 9.03% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 635 بازدید دریافت می‌کند. در اولین روز معمولاً 966 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 10 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند php, laravel, пхпшника, artisan, api تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 08 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

10 699
مشترکین
-724 ساعت
-197 روز
-4730 روز
آرشیو پست ها
Внутреннее устройство PHP-массива (HashTable) На поверхности array — просто «ключ-значение». Под капотом — компактная hash-таблица Zend Engine с режимами для разных сценариев и сохранением порядка вставки. Официально: «array в PHP — упорядоченная карта». 📦 Базовая структура PHP хранит массив как HashTable (Zend): есть таблица хеш-слотов и массив «бакетов» с элементами. С PHP 7 реализация компактная: меньше аллокаций и память/кэш-локальность лучше по сравнению с PHP 5. Два режима работы: Packed — когда ключи 0..n-1 без дыр, работает как плотный список. Mixed — как ассоциативный словарь (строковые и целочисленные ключи). Переключение прозрачно. 🔑 Хеш и распределение Строковые ключи хешируются внутренней функцией движка; индекс вычисляется по маске таблицы (степень двойки → быстрый & (n-1)). Числовые ключи идут напрямую как индексы (в packed) или как int-ключи (в mixed). Порядок обхода = порядок вставки. 🌊 Коллизии Коллизии разрешаются через связные цепочки внутри хеш-слотов (указатели между бакетами). Деревьев, как в Java 8, нет — в худшем случае поиск линейный по цепочке. На практике за счёт маски/resize средняя сложность операций остаётся O(1). ⚡️ Ресайзинг При росте элементов таблица увеличивается (обычно ×2), элементы перераскладываются в новые слоты по той же маске. Это дорогая операция, но амортизированно остаётся дешёвой. 📊 Производительность (в среднем) isset($a[$k]) / чтение / запись — O(1); в крайне «плохих» случаях — O(n) из-за цепочек. Хорошее распределение ключей и разумный размер таблицы держат вас в O(1). ⚖️ Важные нюансы Порядок важен: массив — упорядоченная структура (вставочный порядок сохраняется). Типы ключей: только int и string. Числовые строки автоматически приводятся к int (например, «8»8; «08» останется строкой). Объекты/массивы как ключи — нельзя. Копирование при записи (COW): присваивание массива создаёт «разделяемую» копию; реальное копирование — при первой модификации. Это экономит память и часто снимает страх «дорого скопировал». Итерация не fail-fast: foreach не бросает исключения при изменении массива во время обхода; поведение «слабо-консистентное», ориентируйтесь на читаемость и аккуратность. (Специального fail-fast механизма как в JDK нет; официальная дока описывает лишь общие правила итерации массива.) 🧮 Когда массив — не то, что нужно В PHP массив не принимает объекты как ключи. Для кейсов «ключ = объект» есть специальные структуры: SplObjectStorage — map/set для объектов-ключей. Удобно для учёта уникальных объектов, привязки метаданных к объекту. WeakMap (PHP 8+) — как map «объект → значение», но не удерживает объект от GC: когда объект больше нигде не живёт, пара удаляется из карты. Идеально для кэшей, завязанных на жизненный цикл объекта. 🔍 Частые подводные камни «Почему «123» стал ключом 123?» — потому что numeric string → int по правилам массива. Если хотите именно строковый ключ, сделайте его явно невалидной «десятичной» формой (например, «+123» или «00123»), или храните в другой структуре. «Почему копия массива не дорога?» — из-за Copy-On-Write: реальный дубликат появится только при изменении. Библиотека пхпшника #php_азбука

🛠 PhpStorm-лайфхак: Быстрый доступ к любой ветке Git Если ты часто переключаешься между ветками в проектах, вот способ сделать это максимально быстро прямо из PhpStorm, без лишних кликов мышкой. 🔍 Как это работает: 1. Нажми Ctrl+Shift+A (или Cmd+Shift+A на macOS). 2. Начни вводить Git: Checkout и выбери нужную команду. 3. Введи название ветки и нажми Enter — мгновенный checkout! ⚡️ Почему это круто: 🔸 Быстро переключаешься между ветками без поиска в списках 🔸 Нет необходимости помнить точные команды Git в терминале 🔸 Удобно при работе с большим количеством веток Библиотека пхпшника

Bash-скрипт на максималках: как работает менеджер задач для управления 300 скриптами Статья рассказывает историю о том, как в
Bash-скрипт на максималках: как работает менеджер задач для управления 300 скриптами Статья рассказывает историю о том, как в команда столкнулась с «проклятьем масштаба» при работе с сотнями скриптов для загрузки и обработки данных из десятков открытых источников. Изначально запуск был построен на cron и bash-скриптах, но со временем процесс стал занимать слишком много времени и стал крайне сложным в поддержке. Готовых решений в 2018 году (например, Airflow) для их специфики не нашлось, поэтому команда спроектировала собственный TaskManager. По сути, это статья о том, как инженерная проблема управления «зоопарком скриптов» превратилась в задачу по теории графов, и как алгоритмический подход дал решение, которое оказалось масштабируемым и долгоживущим. 🔗 Хабр Библиотека пхпшника

🔐 How to: добавить двухфакторную аутентификацию (2FA) в Laravel Nova Админка — место, где безопасность особенно важна. Даже если Laravel Nova уже неплохо защищена, базовых мер (типа IP-фильтров) может быть недостаточно. Простое и надёжное решение — двухфакторная аутентификация. Сегодня разберём, как добавить её в Nova буквально за 5 минут с помощью пакета Visanduma Nova Two Factor. ⚙️ 1. Установка Для Nova 5 — просто ставим пакет:
composer require visanduma/nova-two-factor:~3
Затем публикуем конфигурацию:
php artisan vendor:publish --provider="Visanduma\NovaTwoFactor\ToolServiceProvider"
🧩 2. Подключаем трейт к модели администратора use Visanduma\NovaTwoFactor\ProtectWith2FA; class Admin extends Authenticatable { use ProtectWith2FA; } Теперь именно эта модель будет защищена 2FA. 🔒 3. Добавляем middleware в Nova Откройте config/nova.php и добавьте посредник пакета в список middleware: 'middleware' => [ ..., \Visanduma\NovaTwoFactor\Http\Middleware\TwoFa::class, ], 🧰 4. Регистрируем инструмент в NovaServiceProvider public function tools() { return [ ..., new \Visanduma\NovaTwoFactor\NovaTwoFactor(), ]; } После этого в меню появится пункт Two Factor Auth, где админ сможет включить 2FA. 🧭 5. Кастомное меню? Добавьте пункт вручную Nova::mainMenu(function (Request $request) { return [ MenuSection::make('Two Factor Auth', [ MenuItem::link('2FA', 'nova-two-factor'), ])->icon(config('nova-two-factor.menu_icon')), ]; }); Теперь 2FA появится и в вашем пользовательском меню. 💡 Pro Tip Если вы хотите убрать ограничение по IP, просто измените gate в NovaServiceProvider: protected function gate() { Gate::define('viewNova', fn (\App\Models\Admin $user) => true); } ⚠️ Только не удаляйте gate полностью — Nova этого не простит! 🛡 После включения 2FA при каждом входе администратору нужно будет ввести OTP-код — защита станет заметно прочнее, а доступ под контролем.

⌨️ Топ-вакансий по PHP за неделю Senior PHP разработчик — от 250 000 до 320 000 ₽, Удалёнка (Москва) PHP dev (Symfony, RabbitMQ) — от 250 000 до 400 000 ₽, Офис (Москва) Team Leader / Lead PHP Developer — от 5500 до 6500 $, Удалёнка (Москва) PHP Developer — от 250 000 ₽, Удалёнка (Москва) ➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs

💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy Бери знания под свой стек: Python | алгоритмы | математика
💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy Бери знания под свой стек: Python | алгоритмы | математика для Data Science | архитектура кода.
Пока одни ждут «идеальный момент», другие просто учатся. А потом берут ваши офферы.
⚡️ Пока скидка действует, апдейтни свои навыки

⚡️ How to: асинхронная обработка в Symfony Messenger Современные пользователи не хотят ждать, пока ваш сервер «пережёвывает»
⚡️ How to: асинхронная обработка в Symfony Messenger Современные пользователи не хотят ждать, пока ваш сервер «пережёвывает» тяжёлые задачи — будь то генерация отчёта, обработка видео или загрузка большого файла. Решение простое: отправить работу в фон. И здесь на сцену выходит Symfony Messenger. 🚨 Проблема синхронного подхода Каждый запрос ждёт полного выполнения всех действий. Отправка письма или генерация PDF может «подвесить» вкладку браузера. Долгие запросы блокируют сервер и мешают обслуживать других пользователей. ✅ Решение — Messenger Symfony Messenger реализует паттерн Producer-Consumer: 🔸 Message — простая PHP-DTO с данными (например, ProcessVideoMessage). 🔸 Handler — сервис с бизнес-логикой обработки. 🔸 Transport — очередь (RabbitMQ, Redis, Doctrine, SQS). 🔸 Worker — отдельный процесс, который слушает очередь и обрабатывает сообщения. Таким образом, пользователь получает быстрый отклик, а тяжёлая работа уходит в фон. 🎬 Пример: параллельная обработка видео 1. Разбиваем видео на чанки и отправляем каждую часть отдельным сообщением. 2. 10 воркеров параллельно кодируют/обрабатывают куски. 3. Событие VideoChunkProcessed сигнализирует о завершении. 4. После обработки всех чанков запускается CombineVideoChunksMessage, который объединяет куски в готовый файл через FFmpeg. 🚀 Чем это хорошо 🔹 Масштабируется горизонтально: чем больше воркеров, тем быстрее работа. 🔹 Гарантированная устойчивость — сообщения не теряются. 🔹 Архитектура становится модульной и предсказуемой. 👉 Читать статью 🐸 Библиотека пхпшника

🚀 Laravel MCP: новая библиотека для AI-интеграций в Laravel недавно в публичную бету вышел Laravel MCP — библиотека, которая позволяет разворачивать Model Context Protocol (MCP)-серверы прямо внутри вашего Laravel-приложения. 🔎 Что такое MCP? Model Context Protocol (MCP) — это открытый стандарт, который помогает AI-ассистентам (ChatGPT, Claude, Cursor и др.) безопасно подключаться к внешним сервисам и данным. Вместо того чтобы писать отдельные интеграции для каждого ИИ, MCP предлагает универсальный API для агентов. Laravel MCP поддерживает три ключевых примитива протокола: 🔸 Tools — выполнение действий: от генерации инвойсов до запуска команд. 🔸 Resources — предоставление данных и контента (документы, профили, отчёты). 🔸 Prompts — шаблоны для типовых запросов (ревью кода, модерация контента). 🛠️ Возможности Laravel MCP Servers: точка входа для взаимодействия с AI. Поддерживаются web-серверы (HTTP для удалённых клиентов) и локальные (artisan-команды для девелопмента). Tools: выносите бизнес-логику наружу — AI сможет запускать её по запросу пользователя. Resources: отдавайте данные приложения в структурированном виде. Prompts: формируйте повторно используемые шаблоны общения с ИИ. 🔐 Безопасность Laravel MCP поддерживает два подхода к защите web-серверов: OAuth 2.1 (Laravel Passport) — надёжный вариант для продакшена. Token-based (Laravel Sanctum) — простой и лёгкий способ защиты. Дополнительно можно встраивать авторизацию прямо в обработчики инструментов и ресурсов. 📦 Установка Требования: PHP 8.1+, Laravel 10/11/12. Установка: composer require laravel/mcp. После — публикуете routes/ai.php, где настраиваются MCP-сервера. 🔬 Тестирование 🔹 MCP Inspector: CLI-утилита для проверки аутентификации и отладки MCP-сервера. 🔹 Unit tests: есть встроенные ассершены для проверки ответов и симуляции запросов. 💡 Где применять 🔹 Для разработчиков: генерация кода, запуск artisan-команд, автоматизация тестов. 🔹 Для бизнеса: AI-инвойсинг, управление пользователями, публикация контента. 🔹 В энтерпрайзе: интеграция с CRM/ERP, автоматическая обработка заявок, предиктивная аналитика. 🔹 Для данных: безопасный доступ к профилям, заказам и сторонним API прямо из AI-чатов. ⚡️ Laravel MCP превращает Laravel-приложение в «AI-совместимый» сервис. Теперь вместо кастомных интеграций можно один раз поднять MCP-сервер и позволить ассистентам напрямую использовать ваши бизнес-процессы. 👉 Вопрос: какие функции вы бы первыми открыли для LLM через MCP — генерацию кода, работу с базой или бизнес-логику? 🗂️ Документация Библиотека пхпшника #инструменты

🔥 PHP 8.5: релиз, который радует мелочами Совсем скоро выходит PHP 8.5, и это именно та версия, где нет «вау»-революции, но
🔥 PHP 8.5: релиз, который радует мелочами Совсем скоро выходит PHP 8.5, и это именно та версия, где нет «вау»-революции, но есть куча приятных мелочей, которые сделают жизнь разработчика проще. Давайте разберёмся, что нового. ➡️ Pipe Operator Теперь можно писать цепочки вызовов без временных переменных. Код читается слева направо — и становится чище. 🛑 Атрибут #[NoDiscard] Если функция возвращает значение, которое нельзя игнорировать — PHP предупредит. Это реально спасает от багов, когда кто-то «забыл» использовать результат вызова. 🔒 Closures в константах Теперь можно использовать статические замыкания прямо в константах, свойствах по умолчанию и атрибутах. Отличный плюс для фреймворков с валидацией и метаданными. 🧰 Array helpers array_first() и array_last() — наконец-то нормальные функции для получения первого и последнего элемента массива. Без возни с указателем. 🏷 Атрибуты для глобальных констант Теперь константы можно помечать метаданными (например, #[Deprecated]). Удобно для больших пакетов и конфигураций. ⚡️ Новый get_exception_handler() Наконец-то можно посмотреть, какой exception handler у вас сейчас установлен. Полезно для фреймворков и глобальной обработки ошибок. 🌍 Intl List Formatter Форматирует списки по правилам локали: "Lisbon, Porto, and Coimbra". Для интернационализации — находка. 🖥 Улучшения в CLI php -i --diff — показывает, чем ваша php.ini отличается от дефолта. Константа PHP_BUILD_DATE — точная дата сборки бинаря. Final Property Promotion — можно делать отдельные свойства final. Чуть более удобные ошибки и варнинги в CLI. 😀 Это та версия, которая не ломает привычки, а аккуратно убирает шероховатости. Если вы пишете на PHP каждый день — разницу почувствуете сразу. 🙂 Вопрос к вам: какая из фич PHP 8.5 войдёт в ваш код первой?

Что будет выведено в результате работы скрипта?
Anonymous voting

Что будет выведено в результате работы скрипта?
Что будет выведено в результате работы скрипта?

🔥 Saga pattern в PHP-микросервисах: как приручить хаос распределённых транзакций Представьте: вы заказываете пиццу через приложение. В этот момент включается цепочка микросервисов: проверяется аккаунт, блокируются деньги, резервируется товар, создаётся заказ, уведомляется курьер, списываются бонусы. Всё идёт гладко… пока один из шагов не ломается. Что делать? 👉 Здесь на сцену выходит Saga pattern — способ координации распределённых транзакций без глобального коммита. Он превращает «монолитный» ACID-подход в управляемую серию шагов, каждый из которых либо завершается успешно, либо компенсируется обратным действием. ⚖️ Откуда растут ноги В распределённых системах невозможно одновременно держать: 🔸 Consistency (согласованность), 🔸 Availability (доступность), 🔸 Partition Tolerance (устойчивость к сетевым сбоям). CAP-теорема заставляет выбирать. Микросервисы обычно выбирают доступность + устойчивость, жертвуя мгновенной консистентностью. Saga — это про eventual consistency и отказ от «всё или ничего» в пользу гибкой компенсации. 🧩 Основные принципы Saga Локальные транзакции — каждая операция выполняется внутри своего сервиса и своей базы. Компенсирующие действия — для каждого шага определяется обратное (отмена заказа, возврат средств, снятие резерва). Pivot-операция — «точка невозврата», после которой процесс обязан завершиться (например, списание средств или отправка товара). Идемпотентность — шаги должны безопасно повторяться (например, повторный возврат денег не должен удвоить баланс). Наблюдаемость — все шаги саги должны логироваться и мониториться как единый процесс. 🕺 Хореография vs 🎼 Оркестрация Хореография (event-driven): Сервисы реагируют на события друг друга («создан заказ» → «оплата прошла» → «товар зарезервирован»). Плюсы: нет центрального управляющего, меньше точек отказа, естественная асинхронность. Минусы: сложно тестировать и дебажить, растут циклы и зависимости. Оркестрация (central coordinator): Есть управляющий компонент, который пошагово запускает сервисы и следит за компенсацией. Плюсы: прозрачность, контроль, простая трассировка. Минусы: единая точка отказа, риск узкого места. 🛡️ Типовые проблемы и решения Lost update: несколько саг меняют один ресурс. Решение — семантические блокировки или оптимистические версии. ABA-проблема: значение успело измениться A→B→A. Решение — векторные часы, версии. Dirty read: один сервис читает «грязные» данные другого. Решение — откладывать коммиты или использовать операции как очередь. Подвисшие саги: шаг завис или умер. Решение — таймауты + процесс восстановления. 🏗️ Что важно в проде Чётко определённые компенсации для каждого шага. Хранение состояния саги (статус, завершённые шаги, таймстемпы). Автовосстановление: незавершённые саги нужно уметь продолжать или компенсировать. Мониторинг и алерты: метрики (saga.started, saga.completed, saga.failed). Property-based тесты: либо все шаги завершены, либо все выполненные шаги компенсированы. ❓А вы бы выбрали хореографию событий (больше свободы, но сложнее отлаживать) или центрального дирижёра (прозрачность и контроль, но SPOF)? 🔗 Читать статью Библиотека пхпшника

💡Совет по Laravel: Статистика обработчика HTTP-клиента HTTP-клиент Laravel использует Guzzle, предоставляя доступ к статисти
💡Совет по Laravel: Статистика обработчика HTTP-клиента HTTP-клиент Laravel использует Guzzle, предоставляя доступ к статистике по каждому запросу, включая общее время, скорость загрузки и многое другое 🚀 Библиотека пхпшника #vardump

💻 Подборка новостей по PHP за неделю:​ 🔹 Laravel Starter Kit — Nuno Maduro представил новый строгий стартовый набор для про
💻 Подборка новостей по PHP за неделю:​ 🔹 Laravel Starter Kit — Nuno Maduro представил новый строгий стартовый набор для проектов. Он включает строгую проверку типов, форматирование и статический анализ на максимальных настройках. 🔹 PHP 8.5.0 RC 1 — вышел первый релиз-кандидат PHP 8.5.0, следующий шаг перед финальным релизом в ноябре. Также опубликованы багфикс-релизы PHP 8.3.26 и PHP 8.4.13. 🔹 Symfony 7.3.4 — вместе с ним выпущены версии 6.4.26 и 7.3.4. 🔹 Symfony 22–28 сентября 2025 — развитие Symfony 7.4 продолжается: добавлены новые функции и внесены депрекейшены перед релизом в ноябре. Библиотека пхпшника #свежак

🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал Первый вебинар успешно прошёл, участники уже начали разбираться, как ис
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах. Но всё самое интересное только начинается! 🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов. 💸 Сейчас действует специальная цена → 69.000 ₽ вместо 79.000 ₽. ⏳ Осталось всего 4 места. Не упустите шанс прокачаться в том, что будет определять будущее индустрии. 👉 Забронировать место на курсе

📎 Разница между merge и rebase в git 🐸 Библиотека пхпшника
📎 Разница между merge и rebase в git 🐸 Библиотека пхпшника

📚 Expert Linux Administration Guide: Administer and Control Linux Filesystems, Networking, Web Server, Virtualization, Datab
📚 Expert Linux Administration Guide: Administer and Control Linux Filesystems, Networking, Web Server, Virtualization, Databases, and Process Control (2022) Все мы знаем, что Linux — это не просто система, а целая философия. Но вот беда: админить её часто приходится по принципу «гуглишь до рассвета, молишься до обеда». Книга обещает превратить хаос в порядок. Тут всё, что нужно начинающему (и не очень) админу: от файловых систем и сетевых настроек до веб-серверов, виртуализации и восстановления базы после того, как кто-то случайно дропнул ее на проде. 📌 Что внутри: 🔴Как настраивать DNS, почтовики и Squid так, чтобы они не падали каждые выходные. 🔴Фаерволы, балансировка и «да кто там опять открыл 22 порт наружу?!» 🔴Бэкапы и восстановление (да-да, то самое, про которое все вспоминают только когда уже поздно) 🔴Виртуализация, мониторинг, апдейты пакетов и прочие радости. 🔗 Скачать 🐸 Книги для программистов

Оффтоп в пятницу У нас к вам несерьёзный вопрос — как вы называете X? Не букву, а социальную сеть. До сих пор говорите твиттер или привыкли, к тому, что это теперь икс? Пишите свои варианты в комменты, а ещё подпишитесь на наш канал в твиттериксе ➡️ Подписаться 🐸 Библиотека пхпшника