Telegram Web Link
📣 После изменения атрибутов записи Eloquent вы можете получить оригинальные атрибуты, вызвав метод getOriginal()
Удаление дублирующихся символов в строках

Если вам нужно удалить дубликаты строк в Laravel и PHP-приложениях, в Laravel v11.20 добавлен новый метод deduplicate в String helpers, который позволяет быстро и легко удалять дубликаты символов.

use Illuminate\Support\{Str,Stringable};

$string = '/usr/local////path/to///desktop';

Str::deduplicate($string, '/');
// «/usr/local/path/to/desktop»

(new Stringable($string))->deduplicate('/')->toString();
// «/usr/local/path/to/desktop»


По умолчанию символом замены в методе deduplicate() является пробел, что также может быть использовано для помощника squish(), представленного в Laravel v9.7.0:

Str::deduplicate(' John Smith Jr. '); // « John Smith Jr. »
Str::squish(' John Smith Jr. '); // «John Smith Jr.»


Обратите внимание на лишние пробелы ' ' в начале и в конце при использовании deduplicate(), это сделано специально. Deduplicate используется для замены последовательных экземпляров данного символа на один символ в данной строке. Squish также удаляет другие пробельные символы, такие как новые строки и табуляции:

// Каждый пример возвращает `laravel php framework`:
Str::squish(' laravel php framework '));
Str::squish(«laravel\t\tphp\n\nframework»);
Str::squish('
laravel
php
framework
');
Простой сравнительный график по алгоритмической сложности
💡/Совет по PHP/Laravel

Вместо того чтобы выполнять цикл foreach по массиву для поиска значения записи, вы можете использовать метод Laravel Collection contains().

@phpshka
CSV и PHP8.4+

Здесь обсуждаются изменения в PHP 8.4, касающиеся обработки CSV-файлов, и их влияние на разработчиков и библиотеку league/csv, которая является популярным инструментом для работы с CSV в PHP.

В новой версии PHP 8.4 будут введены новые функции, такие как асимметричная видимость и хуки для свойств, но также будут изменения в старых функциональностях, в частности, в обработке CSV.

Разработчикам рекомендуется обновить свой код, чтобы использовать пустую строку для параметра экранирования и избежать предупреждений о депрекации. В статье приводятся примеры кода с пояснениями, как это сделать.
Советы по моделям в Laravel

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

1. Избегайте проблемы N+1 запросов
N+1 запросы возникают, когда для каждого элемента в коллекции данных выполняется отдельный запрос к базе данных, что замедляет приложение. Чтобы избежать этого, используйте eager loading для подгрузки связанных данных заранее.

2. Предотвращение доступа к несуществующим атрибутам
Если вы случайно попытаетесь получить доступ к несуществующему атрибуту модели, Laravel может вернуть null, что может вызвать неожиданные ошибки. Включите функцию, которая будет выбрасывать исключение при попытке доступа к несуществующему полю.

3. Защита от молчаливого игнорирования атрибутов
При попытке обновить модель с использованием полей, которые не указаны в списке fillable, Laravel просто проигнорирует эти данные. Включите функцию, которая будет выбрасывать исключение в таких случаях, чтобы избежать ошибок.

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

5. Использование UUID вместо автонумерации
Для повышения безопасности можно использовать UUID (уникальные идентификаторы) в качестве первичных ключей или для публичных идентификаторов. Это затрудняет предсказание ID и может защитить приложение от атак.

6. Использование кастомных коллекций
Laravel позволяет создавать собственные коллекции моделей с дополнительными методами для удобства работы с ними.
Сегодня отмечается День программиста.

Поздравь причастных коллег
Привет, разработчики Laravel 👩‍💻

Начиная с Laravel v11.18.0, в методе Str::limit() появился новый параметр preserveWords.

Пример использования метода limit() — отображение предварительных версий текстового контента, таких как резюме или отрывки блог-постов.

Раньше при использовании метода limit он мог разрывать слова посередине.

Теперь мы можем передать параметр preserveWords как true, и Laravel умно применит ограничение так, чтобы последнее слово было полным.

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

#laravel #php
Совет по Laravel 💡

Вам нужно использовать одни и те же правила проверки пароля для разных маршрутов пользователей (например, при регистрации и создании панели администратора)?

Обратите внимание на функцию Password::defaults().

Ознакомьтесь со всеми правилами в документации: https://github.com/illuminate/validation/blob/master/Rules/Password.php
Вот 50-минутное руководство по атрибутам #PHP 📺

Узнайте, как создавать атрибуты с целью применения правил проверки к свойствам объекта передачи данных

Ознакомьтесь с этим видео здесь 👇 или сохраните в закладках на будущее

https://youtu.be/oSo4xbP6ZYo

@phpshka
Совет по Laravel💡

Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?

И не хотите устанавливать Debugbar, Telescope и т.п.?

Используйте DB::listen() с toRawSql()!

@phpshka
Media is too big
VIEW IN TELEGRAM
🖥 Полный курс Laravel Swagger. REST API Laravel

00:00:00 Введение
00:04:25 Делаем заготовку
00:16:20 Установка Swagger
00:22:18 Общие аннотации и настройки Swagger
00:28:01 CRUD со Swagger
01:03:03 Установка JWT Auth
01:13:08 Авторизация и защищенные роуты в Swagger
01:20:20 Бонус. Нестандартные тело запроса и ответа

источник

@phpishka
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ CipherSweet

Полезная библиотека, которая разработанная компанией Paragon Initiative Enterprises для реализации шифрования на уровне полей с возможностью поиска.

https://github.com/paragonie/ciphersweet
🖥 Самые популярные пакеты, запущенные в 2024 году 🚀

https://laralibrary.com/top-packages-launched/2024

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Быстрый совет PHP

Простой способ чтения JSON-файлов в Laravel.

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 JSON Parser

PHP парсер с нулевыми зависимостями для чтения больших JSON из любого источника с эффективным использованием памяти.

composer require cerbero/json-parser

🔗 Github

@phpshka
Совет по Laravel 💡: Метод «diffInDaysFiltered»

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

#laravel #php

@phpshka
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PHP TUI

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

https://github.com/php-tui/php-tui

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/29 19:13:57
Back to Top
HTML Embed Code: