Telegram Web
🤖 DeepSeek PHP API-клиент

API-клиент, поддерживаемый сообществом, который позволяет взаимодействовать с API deepseek.

Добавляем через Composer:
composer require deepseek-php/deepseek-php-client


🔗Github

#инструменты
👍242🔥2🥰1
💬 Как использовать array_merge() и array_combine() в PHP?

array_combine(): Она используется для создания нового массива, используя значения одного массива в качестве ключей и значения другого массива в качестве значений. Самое главное при использовании array_combine(), что количество значений в обоих массивах должно быть одинаковым.

array_merge(): Объединяет один или несколько массивов таким образом, что значение одного массива добавляется в конец первого массива, и если массивы имеют одинаковые строки-ключи, то последующее значение отменяет предыдущее значение для этого ключа.

#вопросы_с_собеседований
🔥7👍4🌚2
Автор статьи делится размышлениями о том, как упростить работу с контроллерами в Laravel, избегая дублирования кода при обработке CRUD-операций. В стандартном подходе для выполнения действий с базой данных он использует try-catch внутри контроллера, чтобы обрабатывать возможные ошибки и показывать пользователю сообщения об успешном или неудачном результате. Однако частое повторение этого кода натолкнуло его на мысль вынести обработку ошибок и транзакций в само действие (Action), а не в контроллер.

Для этого он решил использовать PHP-атрибуты, появившиеся в версии 8.0. Он создал атрибут #[Transactionable], который можно добавлять к методам, требующим обёртки в транзакцию. Затем с помощью Reflection API проверяется, есть ли у метода этот атрибут, и если да, то метод выполняется внутри транзакции. Это позволяет контроллеру просто вызывать execute(), не заботясь о try-catch и логировании ошибок.

Однако в процессе реализации автор столкнулся с проблемами: код начал усложняться, скрывая важные детали обработки ошибок и усложняя отладку. В итоге он пришёл к выводу, что в данном случае лучше следовать принципу «явное лучше, чем неявное», и оставил первоначальный вариант с try-catch в контроллере.

👉Читать статью
😁17👍3🤔1
💡 Топ-6 стратегий для снижения задержек в системах

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

🔸 Caching
🔸 CDN
🔸 Load Balancers
🔸 Asynchronous Task Processing
🔸 Database Indexing
🔸 Pre-caching

#инфографика
👍8
🔀 Асинхронный бег или драматическое ускорение с RoadRunner

Очень много в последнее время слышно замечаний в адрес PHP — мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье расписаны плюсы, минусы и результаты попытки ускорить проект на PHP с использованием RoadRunner.

🔗Хабр
😁9👍4
📚 ТОП-11 книг по базам данных в 2025 году

Хотите разобраться в базах данных, но не знаете, с чего начать? Мы подготовили подборку из 11 лучших книг, которые помогут вам освоить раздичные базы данных, паттерны и антипаттерны, а также оптимизацию запросов.

🔗 Читайте в статье
👍5
⚙️ Переход от монолита к микросервисам: ключевые паттерны

На этой схеме представлены 4 ключевых паттерна, которые помогут упростить переход.

🔸 Strangler Fig Pattern
🔸 Parallel Run Pattern
🔸 Decorating Collaborator Pattern
🔸 Change Data Capture (CDC)

#инфографика
3👍1
💻 Подборка новостей по PHP за неделю:

🔎 Fluent-валидация дат в Laravel 11.40
Команда Laravel выпустила версию 11.40, в которой появилась гибкая валидация дат, ожидаемые атрибуты Eloquent, новые debug-хелперы для HTTP-ответов и другие улучшения.

🔎 Релиз Tailwind CSS 4
Это крупнейшее обновление на сегодняшний день, включающее переработанную систему конфигурации и новый высокопроизводительный движок.

🔎 Неделя Symfony #944 (27 января — 2 февраля 2025 года)
На этой неделе Symfony выпустил обновления 6.4.18, 7.1.11 и 7.2.3. Также была опубликована рекомендация по безопасности для Twig, анонсированы новые Symfony-конференции и улучшена поддержка социальных сетей Mastodon и BlueSky.

🔎 Релиз Symfony 7.2.3
В обновлении исправлены баги и внесены важные изменения

🔎 Дата выхода Laravel 12
Тейлор Отвелл объявил, что Laravel 12 выйдет 24 февраля 2025 года. Это первое крупное обновление без breaking-изменений. Ожидается множество улучшений, подробности — скоро!

#дайджест
👍4
⏯️ Unleash: переключатели функций в PHP

Feature flags (или переключатели функций) позволяют включать и отключать определенные функции в приложении без необходимости развертывания нового кода. Одним из удобных инструментов для их управления является Unleash – мощная и гибкая open-source платформа.

Что такое feature flags?
Feature flags – это механизмы, которые позволяют динамически управлять функциональностью приложения. Если, например, в вашей системе можно включать и отключать регистрацию пользователей или комментарии через настройки в базе данных, то это уже базовая форма feature flags. Однако специализированные системы предлагают более продвинутые возможности.

Преимущества использования
Инструменты для управления feature flags, такие как Unleash, помогают:

🔸Постепенно выкатывать новые функции для ограниченной группы пользователей (например, бета-тестеров).
🔸Включать или отключать функции в зависимости от региона (например, для соответствия GDPR).
🔸Запускать A/B тестирование различных версий одной функции.
🔸Отключать проблемные функции в случае сбоев.
🔸Создавать временные или экспериментальные возможности без необходимости ветвления кода.

Unleash: ключевые особенности

Unleash предлагает как платную, так и open-source версию. Его главное отличие – локальная обработка флагов без отправки данных на сервер Unleash. Это снижает нагрузку на сеть и повышает производительность. Данные кешируются, а обмен с сервером происходит минимально – примерно два HTTP-запроса в минуту.

Unleash поддерживает большинство популярных языков программирования и может быть легко интегрирован в проект.

Unleash предлагает несколько стратегий активации фич:

🔹Простое включение/отключение.
🔹Ограничение по ID пользователя или IP-адресу.
🔹Градиентный (поэтапный) rollout – функция включается для части пользователей на основе определенного параметра (например, ID).
🔹Кастомные стратегии, которые можно адаптировать под конкретные задачи.

Интеграция с Symfony
Unleash предлагает удобный бандл для Symfony, который упрощает настройку. Он поддерживает автоматическое определение ID пользователя, интеграцию с HTTP-запросами и использование feature flags в шаблонах Twig.

👉Статья с практическими примерами
👍5🔥1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Какие вебинары вам действительно нужны?

Привет! 👋

Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.

Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.

Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙

👉 Пройти опрос
🌚4😁3
💡 Затрагиваемые отношения Eloquent

Laravel автоматически обновляет updated_at в отношениях «многие-ко-многим», а также поставляется с методом setTouchedRelations для ручного обновления связанных моделей в отношениях «один-к-одному» и «один-ко-многим» 🚀

#совет
👍4
php-mrloop — расширение, предоставляющее интерфейс к API io_uring через библиотеку mrloop

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

API php-mrloop напоминает синтаксис событийного цикла ReactPHP, что облегчает его использование для разработчиков, знакомых с этой библиотекой. Основное преимущество php-mrloop заключается в возможности работать с различными файловыми дескрипторами через единый API, минимизируя необходимость в дополнительных пакетах и обеспечивая высокую производительность.

Прочитайте статью на медиуме, чтобы узнать, почему io_ring лучше, чем реализации select(), poll() и epoll().


🔗Github

#инструменты
👍4
Что такое CQRS?

CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который предлагает разделить операции записи и чтения данных в приложении на две отдельные ветки. Вместо того, чтобы использовать единый интерфейс для обеих операций, CQRS предлагает использовать различные модели данных для команд и запросов. Это позволяет оптимизировать каждую модель для конкретных задач и улучшить производительность приложения.

Применение CQRS может быть особенно полезным в системах с большим количеством операций записи или при необходимости распределенной обработки запросов. CQRS также может облегчить сопровождение приложения, так как изменения в одной части системы не будут влиять на другие части.

Несмотря на то, что CQRS может быть сложной архитектурой для начала использования, правильное применение может принести множество преимуществ.

Интересная статья на эту тему
👍5🔥1
2025/07/08 12:47:13
Back to Top
HTML Embed Code: