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 712 مشتركاً، محتلاً المرتبة 11 598 في فئة التكنولوجيات والتطبيقات والمرتبة 61 274 في منطقة روسيا.

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

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

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

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 15.28‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 9.13‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 1 637 مشاهدة. وخلال اليوم الأول يجمع عادةً 978 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 11.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل php, laravel, пхпшника, artisan, api.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 06 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

10 712
المشتركون
-124 ساعات
-97 أيام
-3430 أيام
أرشيف المشاركات
🔧 array_key_first() / array_key_last() Помните, как все делали reset() или array_keys($arr)[0], чтобы получить первый ключ? Начиная с PHP 7.3 есть нативный способ:
php// ❌ старый способ
$key = array_keys($data)[0];

// ✅ чистый нативный
$key = array_key_first($data);
$last = array_key_last($data);

// работает с ассоциативными тоже
$map = ['foo' => 1, 'bar' => 2];
array_key_first($map); // 'foo'
Не мутирует массив (в отличие от reset()), не создаёт лишний массив ключей — просто возвращает ключ или null если массив пустой. 🔥 Пока разбираетесь с массивами — параллельно можно освоить ИИ-агентов. 4 места до 30 апреля. 🐸 Библиотека пхпшника #vardump

#байтовый_юмор
#байтовый_юмор

💬 Обратная связь Коллеги, давайте соберём базу годных ресурсов по PHP помимо нашего канала. ✔️ Присылайте в комменты: — Блоги и статьи — Telegram-каналы — YouTube-каналы и подкасты — Репозитории — Доклады Что НЕ ищем Курсы "php с нуля за месяц", базовые туториалы и переводы официальной документации. 💬 Закидывайте в комменты ваши любимые источники. Для работы, для учёбы, для повседневного чтения.

🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук,
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные сервисы (в т.ч. для Сбера). Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список. 🛠 Стек и фреймворки: DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов). Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью. MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам. 📖 Документация, которую нужно знать: Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API. OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью. Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов. 🔬 Хардкорные статьи и препринты (на выходные): Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста. How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов. MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти. InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты. Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде 🎁 Акция в честь старта продаж! Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок. 👉 Забрать 2 курса по цене 1 и начать обучение

#байтовый_юмор
#байтовый_юмор

⚡️ Laravel: withCount() вместо with() для агрегатов with('orders') подгружает всю коллекцию моделей в память. Если нужна только цифра — это избыточно. ❌ Антипаттерн
$users = User::with('orders')->get();
// Eloquent грузит все связанные модели в память
// затем PHP считает count() на уже загруженной коллекции

foreach ($users as $user) {
    echo $user->orders->count();
}
✅ Правильно
$users = User::withCount('orders')->get();
// Генерирует подзапрос: SELECT count(*) as orders_count
// Один SQL-запрос, ноль лишних объектов в памяти

foreach ($users as $user) {
    echo $user->orders_count;
}
Доступные хелперы одного семейства:
User::withSum('orders', 'total')    // orders_sum_total
User::withAvg('reviews', 'rating')  // reviews_avg_rating
User::withMin('orders', 'total')    // orders_min_total
User::withMax('orders', 'total')    // orders_max_total
Каждый из них транслируется в коррелированный подзапрос. А цепочка из нескольких всё равно будет одни основным SELECT'ом. Применимо когда: — рендеришь список с агрегированными метриками; — строишь API без лишних аллокаций; — профилируешь и видишь with() там, где нужна только цифра.

⚡️ Laravel: withCount() вместо with() для агрегатов --- with('orders') подгружает всю коллекцию моделей в память. Если нужна только цифра — это избыточно. ❌ Антипаттерн:
$users = User::with('orders')->get();
// Eloquent грузит все связанные модели в память
// затем PHP считает count() на уже загруженной коллекции

foreach ($users as $user) {
    echo $user->orders->count();
}
✅ Правильно:
$users = User::withCount('orders')->get();
// Генерирует подзапрос: SELECT count(*) as orders_count
// Один SQL-запрос, ноль лишних объектов в памяти

foreach ($users as $user) {
    echo $user->orders_count;
}
Доступные хелперы одного семейства:
User::withSum('orders', 'total')    // orders_sum_total
User::withAvg('reviews', 'rating')  // reviews_avg_rating
User::withMin('orders', 'total')    // orders_min_total
User::withMax('orders', 'total')    // orders_max_total
Каждый из них транслируется в коррелированный подзапрос. Цепочка из нескольких — всё равно один основной SELECT. --- Применимо когда: — рендеришь список с агрегированными метриками — строишь API без лишних аллокаций — профилируешь и видишь with() там, где нужна только цифра --- #laravel #php #eloquent #performance #backend

Команда git cherry-pick A..B выбирает коммиты:
Anonymous voting

🔄Вы используете шаблоны, запросы и конфигурации каждый день. Но понимаете ли вы, как они устроены внутри? 📅На открытом урок
🔄Вы используете шаблоны, запросы и конфигурации каждый день. Но понимаете ли вы, как они устроены внутри? 📅На открытом уроке за 60 минут разберём, как работает любой язык — и соберём свой DSL на PHP. Покажем полный конвейер: от исходного текста до результата. Вы увидите, как писать лексер, строить синтаксическое дерево и реализовывать интерпретатор. Всё — на чистом PHP, без магии и скрытых механизмов. Это даёт не просто новый навык, а понимание, как работают инструменты, которыми вы уже пользуетесь: шаблонизаторы, запросы, правила. И как создавать собственные решения под задачи бизнеса — без хардкода и сложных обходных путей. 💡Открытый урок проходит в преддверии старта курса «PHP-разработчик. Продвинутый уровень» 29 апреля в 20:00 МСК. Регистрация: https://clc.to/sU25lg Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

⌨️ Топ-вакансий по PHP за неделю Fullstack разработчик PHP — от 180 000 до 230 000 ₽ — удалёнка Backend-разработчик — от 1 800 до 3 100 $ — удалёнка Team Lead PHP — до 402 000 ₽ — удалёнка ➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs

#байтовый_юмор
#байтовый_юмор

🗓 В следующий вторник (28.04) в 19:00 встречаемся в онлайне. Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
В кружке Кирилл рассказал, какие именно подходы будем разбирать. 👉 Занять место на вебинаре

رسالة فيديو00:48

⌛ Сохраняйте шпаргалку по командам git
Сохраняйте шпаргалку по командам git

🔥 Вечный вопрос PHP-разработчика Наш подписчик спрашивает:
«Работаю в компании 2 года. Достался огромный легаси-проект на PHP 7.1. Всё в кучу, тесты не писались никогда. Меня просят его "улучшать" параллельно с фичами. Как вообще подступиться? Рефакторить по-тихому или настаивать на переписывании? И как объяснить бизнесу, что технический долг — это реальная проблема, а не моё нытьё?» — Дмитрий, PHP Developer
💬 Делитесь в комментариях — Как вы работаете с легаси: рефакторинг кусками или полный переезд? — Как убеждали руководство выделить время на технический долг? — Есть ли у вас правило: когда код точно пора переписывать? P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут. #междусобойчик

⚙️ Полезный инструмент для работы с JSON JSON-файлы с высокой вложенностью часто сложно прочитать. 𝐉𝐬𝐨𝐧𝐂𝐫𝐚𝐜𝐤 создает
⚙️ Полезный инструмент для работы с JSON JSON-файлы с высокой вложенностью часто сложно прочитать. 𝐉𝐬𝐨𝐧𝐂𝐫𝐚𝐜𝐤 создает графические диаграммы из JSON-файлов и делает их легко читаемыми. Кроме того, созданные диаграммы можно скачать в виде изображений. Также поддерживает YAML и XML форматы.

Объясни разницу между Gate и Policy в Laravel? Оба инструмента для авторизации, но с разной областью применения. Gateпростые одиночные проверки, не привязанные к модели:
// Определяем в AuthServiceProvider
Gate::define('access-admin-panel', function (User $user) {
    return $user->is_admin;
});

// Проверяем
if (Gate::allows('access-admin-panel')) { ... }
// или в контроллере
$this->authorize('access-admin-panel');
Policy класс с набором правил для конкретной модели:
// php artisan make:policy PostPolicy --model=Post
class PostPolicy
{
    public function update(User $user, Post $post): bool
    {
        return $user->id === $post->user_id;
    }

    public function delete(User $user, Post $post): bool
    {
        return $user->id === $post->user_id || $user->is_admin;
    }
}

// Использование
$this->authorize('update', $post);
Правило выбора — Нет модели → Gate — Есть модель, несколько действий → Policy

⚡️ Мы рады представить команду экспертов курса AgentOps! — Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделе
⚡️ Мы рады представить команду экспертов курса AgentOps!Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделей — Курилл Кухарев поделится, почему компаниям выгодно использовать локальные модели и как их развернуть — Андрей Носов расскажет, как работать с данными и знаниями в AI-системах: построение RAG, выбор подходов к поиску и организация хранения данных — Антон Будняк разберет, как обеспечить устойчивость сервиса, в котором используется ИИ — Александр Ошурков расскажет, как оценивать качество работы LLM в backend-сервисах — Екатерина Трофимов разберет, как проектировать инструменты для AI-агентов и выстраивать взаимодействие с внешними сервисами Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса. К концу обучения вы получите: • Структурированный подход к архитектуре и деплою AI-агентов • Навыки настройки мониторинга, тестирования и контроля расходов на токены • Разбор сложных инженерных кейсов из реальной практики 🎁 Доступ к материалам курса «Разработка ИИ-агентов» в подарок при покупке Инженерного трека 👉 Все подробности и программа обучения.

#байтовый_юмор
#байтовый_юмор

🐘 Меняем директивы PHP на лету Знаете, что можно изменить параметры среды выполнения прямо в рантайме без перезапуска сервера и правки конфигов? 🔹 Зачем это нужно — ini_set() меняет параметры для текущего запроса: удобно для скриптов с нестандартными требованиями к памяти или таймаутам. — ini_get() покажет реальное значение, которое видит ваш процесс, а не то, что вы написали в конфиге три года назад. — Мгновенно отвечает на вопрос «а почему memory_limit игнорируется?» — Работает без доступа к серверу, рестартов и DevOps-тикетов. 🔹 Как использовать Посмотреть реальное значение директивы:
echo ini_get('memory_limit'); // '128M'
Переопределить на лету для тяжёлого импорта:
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '300');
Дамп всех активных настроек:
phpprint_r(ini_get_all());
Только настройки конкретного расширения:
phpprint_r(ini_get_all('session'));
Проверить, откуда пришло значение — из php.ini, .htaccess или кода:
php$all = ini_get_all(null, true);
print_r($all['memory_limit']);
// ['global_value' => '128M', 'local_value' => '512M', 'access' => 7]
⚠️ Не все директивы можно менять через ini_set(), каждая имеет уровень доступа. Если ini_set() возвращает false — директива системная, её меняет только php.ini или конфиг пула php-fpm. Смотрите поле access в выводе ini_get_all(): 1 — можно из кода, 2 — только .htaccess/пул, 4 — только php.ini, 7 — везде.