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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🔒 Symfony: Lock vs Semaphore — когда и что выбрать?

В разработке многозадачных PHP-приложений часто возникает необходимость контролировать доступ к общим ресурсам. Symfony предоставляет два мощных инструмента для этой цели: Lock и Semaphore. Хотя оба компонента служат для синхронизации процессов, их подходы и области применения существенно различаются.

🔐 Lock — эксклюзивный доступ
Lock обеспечивает исключительный доступ к ресурсу:
🔸Один процесс — один доступ: только один процесс может получить «ключ» к ресурсу в любой момент времени.
🔸Идеально для критических секций: обновление файлов, обработка платежей, изменение данных в базе данных.
🔸Простая модель: либо у вас есть доступ, либо вы ждёте.

🚦 Semaphore — ограниченный параллелизм
Semaphore позволяет контролировать количество одновременно работающих процессов:
🔸Ограниченное количество разрешений: каждый процесс «потребляет» одно разрешение.
🔸Идеально для ограничения параллелизма: обработка изображений, API-запросы, очереди задач.
🔸Модель «ограниченного доступа»: несколько процессов могут работать одновременно, но не более заданного лимита.

🧠 Когда использовать что?

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

Semaphore: используйте, когда нужно ограничить количество одновременно выполняющихся процессов, например, для предотвращения перегрузки системы.

📚 Документация:


Symfony Lock

Symfony Semaphore


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

#элементарный_выбор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Instructor

Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.

Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).

🔗 Github

#инструменты
😁1
🚀 Как ускорить массовую отправку HTTP-запросов в PHP

🔍 Постановка задачи:
Есть скрипт на PHP, который должен отправлять множество HTTP-запросов. Нужно сделать это как можно быстрее. Очевидное решение — параллельная отправка.

🔧 Шаг 1: последовательная обработка
Простой цикл с curl_init() и curl_exec() на каждый URL. Результат: 10 запросов выполняются за ~4.4 секунды.

⚙️ Шаг 2: повторное использование curl-хэндла
Инициализируем curl один раз и переиспользуем. Время выполнения снижается до ~1.7 секунды.

Шаг 3: параллельная отправка с curl_multi_
Используем curl_multi_init() и запускаем запросы одновременно. Итог: всего 0.5 секунды на 10 запросов. Почти в 9 раз быстрее, чем изначально.

📦 Шаг 4: отправка батчами (batching)
Если запросов сотни или тысячи, одновременно всё не потянет даже мощный сервер. Решение — отправка пакетами, например по 3. Это позволяет контролировать нагрузку. В нашем примере — ~0.8 секунды на 10 запросов.

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

Библиотека пхпшника #буст
🔥62🥱2
CRUD на PHP с использованием файберов и пула соединений с PostgreSQL

В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.

🔍 Ключевые моменты:

Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.

Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.

Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.

💡 Для кого это будет полезно:
🔸 Разработчикам, стремящимся повысить производительность своих приложений.

🔸 Тем, кто интересуется асинхронным программированием в PHP.

🔸 Специалистам, работающим с PostgreSQL и желающим оптимизировать взаимодействие с базой данных.

🔗 Хабр
1🥱2
🛠 Ускоряем работу в PhpStorm: самые полезные хоткеи

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

🔹 Двойное нажатие Shift: открывает окно Search Everywhere для быстрого поиска файлов, классов или действий по всему проекту.

🔹 Ctrl + N: переход к классу по имени.

🔹 Ctrl + Shift + N: поиск и открытие файла по названию.

🔹 Ctrl + Alt + Shift + N: быстрый поиск и переход к символу (классу, методу, переменной, константе).

🙂 Пишите в комменты ваши любимые сочетания
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱3👍2
How to: создание MCP-сервера с помощью Symfony

Model Context Protocol (MCP) открывает новые горизонты для интеграции ИИ с внешним миром. Если вы работаете с большими языковыми моделями (LLM), вы наверняка столкнулись с их ограничениями — они не могут напрямую взаимодействовать с внешними сервисами или базами данных. Но с помощью MCP это становится возможным!

MCP позволяет разработчикам добавлять внешние инструменты к LLM, расширяя их возможности и улучшая взаимодействие с пользователем. В этой статье мы расскажем, как с помощью Symfony создать сервер MCP и начать разрабатывать инструменты, которые будут интегрировать вашу модель с реальным миром.

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

Библиотека пхпшника #буст
1
💬Знаете ли вы, что вы можете использовать scan в Laravel для разбора строки, введенной в коллекцию, в соответствии с форматом, поддерживаемым встроенной функцией PHP «sscanf»? 🚀

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

#vardump
👍8🌚21
Собираем фулл-хаус: 3 курса по цене 1

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

Современный PHP — это строгая типизация и паттерны. Прокачайте архитектуру и шаблоны проектирования, чтобы писать код уровня Symfony/Laravel. Для роста технического кругозора — алгоритмы и структуры данных.

Если хотите расширить стек (или уйти в ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.

В качестве альтернативного бэкенд-языка — обновлённый Python.

Собрать свой пак
3
💡 Форматирование процентов

Знаете ли вы, что Laravel поставляется с помощником percentage, позволяющим получить процентное отношение к любому показателю? 🚀

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

#vardump
2🥱2
📚 Читаете ли вы техническую литературу, чтобы прокачать свои навыки?

❤️ — да, постоянно читаю
👍 — иногда читаю
👾 — почти не обращаюсь к книгам, получаю знания из других источников

👇 Посоветуйте в комментариях книги, которые показались вам наиболее полезными

#интерактив
👍28👾2423
Автотесты | Как мокировать классы с помощью PHPUnit

Моки — это, по сути, клоны ваших классов. Они переопределяют ваш класс, сохраняя тот же тип и тип возврата, что и исходный класс. Убедиться в правильности возвращаемого типа в процессе создания мока очень важно, в противном случае будут возникать ошибки.

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

Библиотека пхпшника
🖖 Привет, на связи Proglib!

Ищем человека в команду, который будет вести наши каналы по PHP.
Нам нужен не душный сеньор-помидор, а тот, кто реально любит язык, следит за ним и может интересно рассказать об этом другим.

ЧТО ПО ЗАДАЧАМ?

Всё просто — ты ведёшь три канала (основной, задачи и собесы):

➡️ Постишь новости: релизы, фишки (Laravel, Symfony), полезные инструменты.

➡️ Публикуешь задачки: чтобы подписчики разминали мозги.

➡️ Разбираешь вопросы с собеседований, чтобы люди прокачивались.

КОГО ИЩЕМ?

💡 Ты шаришь в PHP (понимаешь код и контекст).

💡 Пишешь нормальным человеческим языком.

💡 Тебя не надо пинать — сам находишь темы и делаешь красиво.

💡 Умеешь в нейронки для облегчения рутины.

УСЛОВИЯ:

📍 Удалёнка, свободный график.

📍 Возможность совмещать с основной работой или учёбой.

📍 Оплата за результат: больше активности — выше доход.

Харэ сачковать — заполняй анкету ✍️
Please open Telegram to view this post
VIEW IN TELEGRAM
🌊 Wave — стартер-пак для разработки SaaS-приложений

Библиотека написана на Laravel и включает все необходимое:

— аутентификация,
— профили пользователей,
— биллинг,
— подписка,
— роли и права доступа,
— уведомления и административная панель.

Инструмент упрощает создание SaaS-приложений, предоставляя необходимые базовые компоненты и гибкие возможности для дальнейшей настройки.

💻 GitHub

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

#инструменты
1