Telegram Web Link
Idempotency — что это такое и как это может помочь нашим API в Laravel?

При разработке API идемпотентность — это важное понятие, о котором нужно знать. Если API поддерживает идемпотентность, клиент передает уникальный ключ для каждого запроса, который сервер использует, чтобы избежать повторной обработки запросов, отправленных несколько раз.
Это помогает избежать, например, проблем с многократной обработкой платежей или повторной отправкой форм, когда у пользователя нестабильное подключение. Этот концепт поддерживается в одних из самых популярных SDK от таких компаний, как Stripe, Paypal, Amazon и Shopify.
В этом посте мы рассмотрим конкретные преимущества, которые идемпотентность приносит нашим API, а также представим пакет, который позволяет легко добавить поддержку идемпотентности в любой Laravel API!

https://www.conroyp.com/articles/what-is-idempotency-add-to-laravel-apis

👉 @php_lib
Как проверить, пуста ли коллекция Laravel?

Как веб-разработчику на Laravel, вам часто придется работать с коллекциями, массивами PHP и массивами JavaScript. Одна из распространенных задач, с которой я сталкиваюсь регулярно, — это проверка, пусты ли эти структуры или нет.

Если вы похожи на меня, то, вероятно, вы пытались взаимодействовать с классом Collection так, как если бы это был массив (случайно или намеренно). Хотя в большинстве случаев это возможно, существует одна распространенная «ловушка», о которой нужно знать, чтобы избежать багов в вашем коде! На самом деле, я написал эту статью потому, что сам попался на эту ловушку и потратил немало времени, пытаясь понять, что происходит.

https://ashallendesign.co.uk/blog/how-to-check-if-a-laravel-collection-is-empty

👉 @php_lib
Профайлинг Laravel приложений с XDebug и PHPStorm

Привет, меня зовут Ваня, я работаю PHP-разработчиком в Санкт-Петербургском электротехническом университете ЛЭТИ. Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи, везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.

Я не буду писать про настройку XDebug вместе с Docker контейнером и Laravel Sail, потому что про это есть тонна статей, в том числе и на русском. Однако, эта статья предполагает, что у Вас есть настроенный XDebug в связке с PHPStorm в Docker контейнере или другой среде.

https://habr.com/ru/articles/788946/

👉 @php_lib
Введение в PHPCTL

В первые годы многие люди использовали решения вроде LAMP, WAMP, XAMPP и т.д. Для тех, кто не знаком с тем временем, это были наборы инструментов, которые включали Apache, MySQL и PHP, и их устанавливали как любое другое приложение с помощью знаменитого подхода "Далее, далее, далее...".

Со временем люди перестали использовать подобные инструменты, особенно с появлением встроенного веб-сервера в PHP, поэтому больше нет необходимости настраивать веб-сервер, такой как Apache или Nginx.

Кроме того, появилась и закрепилась еще одна концепция — использование контейнеров, которые стали очень популярны благодаря инструменту Docker (хотя есть и другие среды выполнения).


https://leocavalcante.notion.site/Introduction-to-PHPCTL-aec7224730e245ff889a89d65a4fbe07

👉 @php_lib
This media is not supported in your browser
VIEW IN TELEGRAM
💡Советы и хитрости PhpStorm - Store Window Layout

Вам не нравится адаптировать положение окон инструментов при каждом новом проекте? (например, дерево файлов слева направо).

Вы можете сохранить их.

👉 @php_lib
Gemini API PHP Client

Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini.

Установка

composer require gemini-api-php/client


Базовая генерация текста


use GeminiAPI\Client;
use GeminiAPI\Resources\Parts\TextPart;

$client = new Client('GEMINI_API_KEY');
$response = $client->geminiPro()->generateContent(
new TextPart('PHP in less than 100 chars'),
);

print $response->text();
// PHP: A server-side scripting language used to create dynamic web applications.
// Easy to learn, widely used, and open-source.


https://github.com/gemini-api-php/client

👉 @php_lib
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.

https://habr.com/ru/articles/746868/

👉 @php_lib
Показываем статистику в реальном времени с Laravel Volt

Для реализации этой возможности нам необходим метод отслеживания активных пользователей. Одним из вариантов является запись активных пользователей в таблицу базы данных. Каждая запись будет содержать идентификатор пользователя и временную метку, когда он был активен. Затем можно проверить активность за последние 5 минут или за любой другой желаемый промежуток времени. Другой способ заключается в наличии столбца "last_login_at" в таблице пользователей. Третий вариант - использование сервера web-sockets для получения подсчета активных пользователей в реальном времени.

В данной статье я остановлюсь на использовании Redis. Я люблю Redis за то, что это простая база данных in-memory, но при этом очень мощная. Я уже использовал этот метод, и он способен масштабироваться до тысяч и даже миллионов пользователей.

https://ahmedash.dev/blog/laravel-core-bits/volt-live-users-stats/

👉 @php_lib
🚨 Совет по безопасности Livewire: Всегда выполняйте авторизацию своих действий! 🔒

Никогда не доверяйте пользовательскому вводу — всегда проверяйте права доступа перед выполнением важных операций. Если вы уже используете Gates и Policies, работа с Livewire покажется вам привычной! 🏡💪

#Laravel #Livewire

👉 @php_lib
Совет по Laravel

Передавайте большие файлы без задержек, используя потоки

👉 @php_lib
Полезная статистика по Laravel: Доля рынка Laravel и тенденции развития в 2024 году

https://techjury.net/blog/laravel-statistics/

👉 @php_lib
This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатное IT-образование в 2024

Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления

Выбирайте нужное и подписывайтесь:

👩‍💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩‍💻 Golang: @juniorGolang
👩‍💻 PHP: @PHPortal
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Java: @Java_Iibrary
👩‍💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩‍💻 Python: @PythonPortal
👩‍💻 C#: @KodBlog
🖥 Базы Данных & SQL: @SQL
👩‍💻 Разработка игр: @GameDevgx
👩‍💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign

➡️ Сохраняйте себе, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP: путешествие от «Hello World» до фреймворков

PHP — это довольно популярный язык программирования. Много лет в интернете можно услышать утверждение, что PHP умирает. Однако язык до сих пор жив и активно используется. Если вы занимаетесь выбором языка для изучения в 2024 году, возможно, вам стоит обратить внимание на другие языки программирования, у языка появилось много достойных и более популярных конкурентов. Но если вы, всё-таки, решились и начали осваивать PHP, то этот материал для вас.

https://habr.com/ru/articles/854488/

👉 @php_lib
Совет по Laravel 💡

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

👉 @php_lib
Как измерить производительность в приложениях Laravel

В данной статье предлагают практические стратегии для оптимизации работы приложений на Laravel. В ней рассматриваются типичные проблемы, такие как N+1 запросы, отсутствие индексов в базе данных и неэффективное использование ресурсов в API. Автор объясняет, как выявлять и исправлять эти проблемы с помощью инструментов, таких как eager loading, использование метода whenLoaded в ресурсах и правильная индексация. В статье подчеркивается важность управления запросами к базе данных и приводятся примеры для облегчения применения этих методов на практике.

https://martinjoo.dev/how-to-measure-performance-in-laravel-apps

👉 @php_lib
⚡️Трансляция главного зала HighLoad++ 2024: спикеры из VK, Яндекс, hh.ru, Сбер и других компаний!

🖐️ Подключайтесь к открытой трансляции бесплатно.

HighLoad++ 2024 — это конференция, которая определяет будущее высоконагруженных систем. 2 и 3 декабря 2024 года все желающие могут бесплатно посмотреть онлайн-трансляцию главного зала. Это стало возможно благодаря поддержке генерального партнера конференции — VK.

Среди спикеров:

🔹 Денис Дерюгин (VK, ВКонтакте): расскажет об эволюции хранилища ВКонтакте за 18 лет.
🔹 Алексей Николаевский (Яндекс): представит сравнение транзакций в Apache Kafka и YDB.
🔹 Владимир Комаров (СберТех): расскажет о геораспределённых транзакциях, их теории и практическом применении.
🔹 Станислав Кондратьев (hh.ru): поделится опытом выделения микросервиса из 15-летнего монолита.

Приятного просмотра!

#реклама
О рекламодателе
Laravel Clockwork: Подробный обзор отладки, профилирования и лучших практик

Автор подробно рассматривает инструмент для отладки и профилирования Laravel Clockwork. Она объясняет, как установить и настроить Clockwork, а также как интегрировать его с расширением для Chrome для анализа запросов и их производительности. Описываются различные вкладки в Clockwork, такие как запросы, база данных, логи, сессии и маршруты. В статье также проводится сравнение с другими инструментами, такими как Laravel Telescope и Laravel Debugbar. Это руководство поможет улучшить производительность и устранить узкие места в приложениях Laravel.

https://qirolab.com/posts/laravel-clockwork-a-deep-dive-into-debugging-profiling-skills-and-best-practices-1705314512

👉 @php_lib
Совет по Laravel 💡

Данные загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.

👉 @php_lib
Совет по Laravel 💡

Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop. Эта переменная предоставляет доступ к некоторым полезным битам информации.

👉 @php_lib
Как реализовать простую очередь в Symfony

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

1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.

2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.

3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.

4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.

5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.

6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.


https://dev.to/daniyaljavani/how-to-implement-a-simple-queue-in-symfony-530a

👉 @php_lib
2025/07/06 06:10:17
Back to Top
HTML Embed Code: