ar
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 617 في فئة التكنولوجيات والتطبيقات والمرتبة 61 382 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 10 699 مشتركاً.

بحسب آخر البيانات بتاريخ 07 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -47، وفي آخر 24 ساعة بمقدار -7، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 15.28‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 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? Не букву, а социальную сеть. До сих пор говорите твиттер или привыкли, к тому, что это теперь икс? Пишите свои варианты в комменты, а ещё подпишитесь на наш канал в твиттериксе ➡️ Подписаться 🐸 Библиотека пхпшника