🗂️ Сохранение нескольких моделей
Знаете ли вы, что Laravel позволяет сохранять сразу несколько связанных моделей с помощью метода
Библиотека пхпшника
#vardump
Знаете ли вы, что Laravel позволяет сохранять сразу несколько связанных моделей с помощью метода
saveMany 🚀Библиотека пхпшника
#vardump
❤2
Почему вы должны указывать тип данных в массивах в PHP
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
Proglib ищет эксперта для ведения PHP-каналов. Нам нужен автор, который глубоко погружён в индустрию и пишет для опытных разработчиков.
🐘 ЗАДАЧИ:
➡️ Вести три канала о PHP: основной, задачи и собеседования.
➡️ Создавать контент Middle+: архитектура, оптимизация, разбор RFC, кейсы Laravel/Symfony.
➡️ Готовить задачи и вопросы для интервью с качественным разбором решений.
➡️ Работать с аналитикой: отслеживать метрики (охваты, ERR) и корректировать контент-план.
➡️ Мониторить комьюнити и оперативно упаковывать тренды в посты.
🎯 ТРЕБОВАНИЯ:
➡️ PHP Middle+: понимание работы движка, паттернов и экосистемы.
➡️ Стиль: умение писать для профи — ёмко, аргументированно и без воды.
➡️ Инструменты: уверенное владение нейросетями для ускорения работы.
➡️ Самостоятельность: вы сами находите темы и отвечаете за качество.
✨ УСЛОВИЯ:
📍 Удалёнка, гибкий график, частичная занятость.
📍 Сдельная оплата за количество задач.
📍 Аудитория — тысячи профильных разработчиков.
👉 Оставляйте отклик, и мы свяжемся с вами!
🎯 ТРЕБОВАНИЯ:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Forwarded from Библиотека задач по PHP | тесты, код, задания
🔒 Symfony: Lock vs Semaphore — когда и что выбрать?
В разработке многозадачных PHP-приложений часто возникает необходимость контролировать доступ к общим ресурсам. Symfony предоставляет два мощных инструмента для этой цели: Lock и Semaphore. Хотя оба компонента служат для синхронизации процессов, их подходы и области применения существенно различаются.
🔐 Lock — эксклюзивный доступ
Lock обеспечивает исключительный доступ к ресурсу:
🔸Один процесс — один доступ: только один процесс может получить «ключ» к ресурсу в любой момент времени.
🔸Идеально для критических секций: обновление файлов, обработка платежей, изменение данных в базе данных.
🔸Простая модель: либо у вас есть доступ, либо вы ждёте.
🚦 Semaphore — ограниченный параллелизм
Semaphore позволяет контролировать количество одновременно работающих процессов:
🔸Ограниченное количество разрешений: каждый процесс «потребляет» одно разрешение.
🔸Идеально для ограничения параллелизма: обработка изображений, API-запросы, очереди задач.
🔸Модель «ограниченного доступа»: несколько процессов могут работать одновременно, но не более заданного лимита.
🧠 Когда использовать что?
Lock: используйте, когда необходимо обеспечить, чтобы только один процесс выполнял задачу в определённый момент времени.
Semaphore: используйте, когда нужно ограничить количество одновременно выполняющихся процессов, например, для предотвращения перегрузки системы.
📚 Документация:
Symfony Lock
Symfony 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
#инструменты
Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.
Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).
🔗 Github
#инструменты
😁1
🚀 Как ускорить массовую отправку HTTP-запросов в PHP
🔍 Постановка задачи:
Есть скрипт на PHP, который должен отправлять множество HTTP-запросов. Нужно сделать это как можно быстрее. Очевидное решение — параллельная отправка.
🔧 Шаг 1: последовательная обработка
Простой цикл с
⚙️ Шаг 2: повторное использование curl-хэндла
Инициализируем
⚡ Шаг 3: параллельная отправка с curl_multi_
Используем
📦 Шаг 4: отправка батчами (batching)
Если запросов сотни или тысячи, одновременно всё не потянет даже мощный сервер. Решение — отправка пакетами, например по 3. Это позволяет контролировать нагрузку. В нашем примере — ~0.8 секунды на 10 запросов.
🔗 Читать статью
Библиотека пхпшника #буст
🔍 Постановка задачи:
Есть скрипт на 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 запросов.
🔗 Читать статью
Библиотека пхпшника #буст
🔥6❤2🥱2
CRUD на PHP с использованием файберов и пула соединений с PostgreSQL
В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.
🔍 Ключевые моменты:
Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.
Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.
Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.
💡 Для кого это будет полезно:
🔸 Разработчикам, стремящимся повысить производительность своих приложений.
🔸 Тем, кто интересуется асинхронным программированием в PHP.
🔸 Специалистам, работающим с PostgreSQL и желающим оптимизировать взаимодействие с базой данных.
🔗 Хабр
В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.
🔍 Ключевые моменты:
Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.
Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.
Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.
💡 Для кого это будет полезно:
🔸 Разработчикам, стремящимся повысить производительность своих приложений.
🔸 Тем, кто интересуется асинхронным программированием в PHP.
🔸 Специалистам, работающим с PostgreSQL и желающим оптимизировать взаимодействие с базой данных.
🔗 Хабр
1🥱2
Мы знаем, что большинство из вас — крутые сеньоры😎 Но также здесь есть новички, которым могут пригодиться горячие клавиши в 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 и начать разрабатывать инструменты, которые будут интегрировать вашу модель с реальным миром.
🔗 Читать статью
Библиотека пхпшника #буст
Model Context Protocol (MCP) открывает новые горизонты для интеграции ИИ с внешним миром. Если вы работаете с большими языковыми моделями (LLM), вы наверняка столкнулись с их ограничениями — они не могут напрямую взаимодействовать с внешними сервисами или базами данных. Но с помощью MCP это становится возможным!
MCP позволяет разработчикам добавлять внешние инструменты к LLM, расширяя их возможности и улучшая взаимодействие с пользователем. В этой статье мы расскажем, как с помощью Symfony создать сервер MCP и начать разрабатывать инструменты, которые будут интегрировать вашу модель с реальным миром.
🔗 Читать статью
Библиотека пхпшника #буст
❤1
💬Знаете ли вы, что вы можете использовать
Библиотека пхпшника
#vardump
scan в Laravel для разбора строки, введенной в коллекцию, в соответствии с форматом, поддерживаемым встроенной функцией PHP «sscanf»? 🚀Библиотека пхпшника
#vardump
👍8🌚2❤1
Собираем фулл-хаус: 3 курса по цене 1
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Современный PHP — это строгая типизация и паттерны. Прокачайте архитектуру и шаблоны проектирования, чтобы писать код уровня Symfony/Laravel. Для роста технического кругозора — алгоритмы и структуры данных.
Если хотите расширить стек (или уйти в ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
В качестве альтернативного бэкенд-языка — обновлённый Python.
Собрать свой пак
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Современный PHP — это строгая типизация и паттерны. Прокачайте архитектуру и шаблоны проектирования, чтобы писать код уровня Symfony/Laravel. Для роста технического кругозора — алгоритмы и структуры данных.
Если хотите расширить стек (или уйти в ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
В качестве альтернативного бэкенд-языка — обновлённый Python.
Собрать свой пак
❤3
💡 Форматирование процентов
Знаете ли вы, что Laravel поставляется с помощником percentage, позволяющим получить процентное отношение к любому показателю? 🚀
Библиотека пхпшника
#vardump
Знаете ли вы, что Laravel поставляется с помощником percentage, позволяющим получить процентное отношение к любому показателю? 🚀
Библиотека пхпшника
#vardump
❤2🥱2
📚 Читаете ли вы техническую литературу, чтобы прокачать свои навыки?
❤️ — да, постоянно читаю
👍 — иногда читаю
👾 — почти не обращаюсь к книгам, получаю знания из других источников
👇 Посоветуйте в комментариях книги, которые показались вам наиболее полезными
#интерактив
❤️ — да, постоянно читаю
👍 — иногда читаю
👾 — почти не обращаюсь к книгам, получаю знания из других источников
👇 Посоветуйте в комментариях книги, которые показались вам наиболее полезными
#интерактив
👍28❤23👾23
Автотесты | Как мокировать классы с помощью PHPUnit
Моки — это, по сути, клоны ваших классов. Они переопределяют ваш класс, сохраняя тот же тип и тип возврата, что и исходный класс. Убедиться в правильности возвращаемого типа в процессе создания мока очень важно, в противном случае будут возникать ошибки.
👉Читать статью
Библиотека пхпшника
Моки — это, по сути, клоны ваших классов. Они переопределяют ваш класс, сохраняя тот же тип и тип возврата, что и исходный класс. Убедиться в правильности возвращаемого типа в процессе создания мока очень важно, в противном случае будут возникать ошибки.
👉Читать статью
Библиотека пхпшника
Ищем человека в команду, который будет вести наши каналы по PHP. Нам нужен не душный сеньор-помидор, а тот, кто реально любит язык, следит за ним и может интересно рассказать об этом другим.
ЧТО ПО ЗАДАЧАМ?
Всё просто — ты ведёшь три канала (основной, задачи и собесы):
КОГО ИЩЕМ?
УСЛОВИЯ:
Харэ сачковать — заполняй анкету
Please open Telegram to view this post
VIEW IN TELEGRAM