Библиотека PHP программиста 👨🏼‍💻👩‍💻
2.19K subscribers
315 photos
168 videos
7 files
331 links
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon

По всем вопросам @evgenycarter
Download Telegram
Почему мне никто не рассказал об этой функции? Я годами преобразовывал объекты в массивы, чтобы использовать Arr::get().

Это всё меняет 🙈

👉 @php_lib
👍12🤨6👎1😁1
Нужно кэшировать тяжелые вычисления в Laravel?

Используй помощник once, который выполняет обратный вызов один раз и кэширует результат.

👉 @php_lib
👍5😁1🍓1
Чтение JSON-файлов в Laravel - проще простого

👉 @php_lib
👍6
Организация кода в Laravel. Личный опыт

В статье я расскажу, как организую свой код в проектах, использующих Laravel. Решил немного структурировать, с чем удалось познакомиться после перехода в мир фреймворков из мира чудного (ударение можете сами поставить) Битрикс. Многие вещи стали для меня открытием и особенно переоткрыл для себя ООП. Начнем рассмотрение с практик организации кода проекта. Статья адресована начинающим разработчикам.

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

👉 @php_lib
👍5
Media is too big
VIEW IN TELEGRAM
Введение в графовые БД в PHP

Это видео должно стать введением в использование графовых баз данных для всех представителей php-сообщества. Я объясняю основные причины, по которым стоит начать использовать графовые базы данных, основываясь на своем опыте веб-разработки.

источник

👉 @php_lib
👍1
Асинхронный PHP с использованием ReactPHP

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

https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c

👉 @php_lib
👍1
Совет по Laravel 💡: Метод «diffInDaysFiltered»

Вам когда-нибудь требовалось подсчитать количество дней между двумя датами при фильтрации по условию? Поскольку Laravel использует Carbon под капотом, вы можете использовать «diffInDaysFiltered», чтобы сделать именно это 🚀.

#laravel

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

Легко обновляйте столбцы JSON с помощью синтаксиса стрелок Laravel! Используйте -> для указания конкретных ключей в ваших JSON-данных. Работает с MariaDB 10.3+, MySQL 5.7+ и PostgreSQL 9.5+.

#laravel

👉 @php_lib
👍6
Понимание предопределенных констант PHP

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

Эти константы, являясь неотъемлемой частью ядра PHP, служат важными строительными блоками, предоставляющими полезную информацию о среде PHP и его конфигурации.

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

https://dev.to/patricia1988hernandez2/understanding-php-predefined-constants-6db

👉 @php_lib
👍3
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
👍4
Как проверить, пуста ли коллекция Laravel?

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

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

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

👉 @php_lib
👍3
Профайлинг 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
👍7
Введение в PHPCTL

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

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

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


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

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

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

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

👉 @php_lib
👍4
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
👍6
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

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

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

👉 @php_lib
👍4
Показываем статистику в реальном времени с 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
👍3
🚨 Совет по безопасности Livewire: Всегда выполняйте авторизацию своих действий! 🔒

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

#Laravel #Livewire

👉 @php_lib
👍4
Совет по Laravel

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

👉 @php_lib
👍5