Форматирование валют с помощью расширенного Number Helper в Laravel
Number helper теперь поддерживает настраиваемые валюты по умолчанию, что упрощает форматирование цен в разных регионах и различных сценариях использования.
🔗Сайт Laravel
Number helper теперь поддерживает настраиваемые валюты по умолчанию, что упрощает форматирование цен в разных регионах и различных сценариях использования.
🔗Сайт Laravel
👍4😁3
glob() со скрытыми файлами
По умолчанию функция
С помощью опции
#совет
По умолчанию функция
glob()
перечисляет только файлы, которые не начинаются с точки .. Это означает, что скрытые файлы в Linux не перечисляются.С помощью опции
GLOB_BRACE`
можно перечислить все файлы и даже отфильтровать постоянно присутствующие '.' и '..'#совет
👾3👍1🤔1😢1🌚1
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
🤖 DeepSeek PHP API-клиент
API-клиент, поддерживаемый сообществом, который позволяет взаимодействовать с API deepseek.
Добавляем через Composer:
🔗Github
#инструменты
API-клиент, поддерживаемый сообществом, который позволяет взаимодействовать с API deepseek.
Добавляем через Composer:
composer require deepseek-php/deepseek-php-client
🔗Github
#инструменты
👍24❤2🔥2🥰1
💬 Как использовать array_merge() и array_combine() в PHP?
array_combine(): Она используется для создания нового массива, используя значения одного массива в качестве ключей и значения другого массива в качестве значений. Самое главное при использовании
array_merge(): Объединяет один или несколько массивов таким образом, что значение одного массива добавляется в конец первого массива, и если массивы имеют одинаковые строки-ключи, то последующее значение отменяет предыдущее значение для этого ключа.
#вопросы_с_собеседований
array_combine(): Она используется для создания нового массива, используя значения одного массива в качестве ключей и значения другого массива в качестве значений. Самое главное при использовании
array_combine()
, что количество значений в обоих массивах должно быть одинаковым.array_merge(): Объединяет один или несколько массивов таким образом, что значение одного массива добавляется в конец первого массива, и если массивы имеют одинаковые строки-ключи, то последующее значение отменяет предыдущее значение для этого ключа.
#вопросы_с_собеседований
🔥7👍4🌚2
Автор статьи делится размышлениями о том, как упростить работу с контроллерами в Laravel, избегая дублирования кода при обработке CRUD-операций. В стандартном подходе для выполнения действий с базой данных он использует try-catch внутри контроллера, чтобы обрабатывать возможные ошибки и показывать пользователю сообщения об успешном или неудачном результате. Однако частое повторение этого кода натолкнуло его на мысль вынести обработку ошибок и транзакций в само действие (Action), а не в контроллер.
Для этого он решил использовать PHP-атрибуты, появившиеся в версии 8.0. Он создал атрибут
Однако в процессе реализации автор столкнулся с проблемами: код начал усложняться, скрывая важные детали обработки ошибок и усложняя отладку. В итоге он пришёл к выводу, что в данном случае лучше следовать принципу «явное лучше, чем неявное», и оставил первоначальный вариант с try-catch в контроллере.
👉Читать статью
Для этого он решил использовать 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
#инфографика
В высоконагруженных приложениях каждое миллисекундное улучшение имеет значение. Вот ключевые подходы, которые помогут сократить задержки и улучшить пользовательский опыт.
🔸 Caching
🔸 CDN
🔸 Load Balancers
🔸 Asynchronous Task Processing
🔸 Database Indexing
🔸 Pre-caching
#инфографика
👍8
🔀 Асинхронный бег или драматическое ускорение с RoadRunner
Очень много в последнее время слышно замечаний в адрес PHP — мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье расписаны плюсы, минусы и результаты попытки ускорить проект на PHP с использованием RoadRunner.
🔗Хабр
Очень много в последнее время слышно замечаний в адрес PHP — мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье расписаны плюсы, минусы и результаты попытки ускорить проект на PHP с использованием RoadRunner.
🔗Хабр
😁9👍4
Forwarded from Книги для программистов
📚 ТОП-11 книг по базам данных в 2025 году
Хотите разобраться в базах данных, но не знаете, с чего начать? Мы подготовили подборку из 11 лучших книг, которые помогут вам освоить раздичные базы данных, паттерны и антипаттерны, а также оптимизацию запросов.
🔗 Читайте в статье
Хотите разобраться в базах данных, но не знаете, с чего начать? Мы подготовили подборку из 11 лучших книг, которые помогут вам освоить раздичные базы данных, паттерны и антипаттерны, а также оптимизацию запросов.
🔗 Читайте в статье
👍5
⚙️ Переход от монолита к микросервисам: ключевые паттерны
На этой схеме представлены 4 ключевых паттерна, которые помогут упростить переход.
🔸 Strangler Fig Pattern
🔸 Parallel Run Pattern
🔸 Decorating Collaborator Pattern
🔸 Change Data Capture (CDC)
#инфографика
На этой схеме представлены 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-изменений. Ожидается множество улучшений, подробности — скоро!
#дайджест
🔎 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.
👉Статья с практическими примерами
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