Заметки разработчика
473 subscribers
667 photos
4 videos
1.16K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
👩‍💻 Советы по Моделям Laravel

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

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

🖥 Читать статью

📱 @dev_notes_ru

#backend #laravel #eloquent #model #tips #php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Приложениям корпоративного уровня часто требуется выполнять объёмную обработку данных. Например, массовый экспорт, создание отчетов, автоматическое выставление счетов и т. д.

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

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

Чтобы избежать этой проблемы, можно воспользоваться методом chunk(), предоставляемым Eloquent.

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

📱 @dev_notes_ru

#laravel #eloquent #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💡 Совет по Laravel: Постоянное удаление soft deleted моделей

Иногда требуется удалить soft deleted модели навсегда. Для этого можно использовать forceDelete() или новый метод forceDestroy(), появившийся в Laravel v11.21 🚀.

📱 @dev_notes_ru

#laravel #tips #eloquent #SoftDelete
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Что нового в Pest 3 и как его обновить

Повысьте уровень тестирования PHP с помощью Pest 3. Архитектурные тесты с пресетами, мутации и управление списками задач.

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

🖥 Читать статью

📱 @dev_notes_ru

#backend #pest #php #laravel #testing
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
💡 Совет по Laravel: Отключите события модели при засеве базы данных

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

📱 @dev_notes_ru

#laravel #database #seeding #seeder
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💡 Совет по Laravel

Можно создавать кастомные диски во время выполнения программы без необходимости держать конфигурацию в файле config/filesystems.

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

📱 @dev_notes_ru

#laravel #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#backend #pest #php #laravel #testing

👩‍💻 Пресеты архитектурного тестирования в Pest 3

Узнайте, как Pest 3 упрощает архитектурное тестирование с помощью пресетов, позволяя без труда внедрять лучшие практики и поддерживать качество кода в проектах.

Пресеты архитектурного тестирования в Pest 3 — это предварительно настроенные наборы правил, помогающие обеспечить соблюдение лучших практик и структурной целостности кодовой базы. Они похожи на бдительного ревизора кода, встроенного прямо в набор тестов. Но это происходит мгновенно и занимает всего несколько секунд!

Pest 3 поставляется с несколькими пресетами в комплекте:

Laravel
PHP
Relaxed
Security
Strict

Давайте разберёмся, что каждый из этих пресетов предлагает.

🖥 Читать статью

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#laravel #schedule #php #tips

Используя класс Schedule в Laravel, можно планировать выполнение команд через определенные промежутки времени, например, ежедневно, ежечасно и т. д.

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

Например, выполнять команду Process Order ежечасно, только когда есть отложенные заказы для обработки.

Не волнуйтесь - можно использовать метод when() в цепочке при составлении расписания для выполнения условной проверки.

Метод when() принимает в качестве параметра функцию обратного вызова, и команда будет запланирована, когда функция обратного вызова вернет истинное значение.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#laravel #tips

💡Совет по Laravel: Получение только удаленных записей

При работе с soft deleted моделями может понадобиться получить только удаленные записи. Хотя можно вручную отфильтровать запрос по столбцу deleted_at, есть метод onlyTrashed(), который позволяет сделать именно это 🚀.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#backend #laravel #php

👩‍💻 Валидация (безопасных) URL-адресов

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

Сегодня рассмотрим валидатор url, проверяющий, содержат ли поля ввода корректные URL-адреса, и позволяющий определить допустимые протоколы для указанных URL-адресов.

🖥 Читать статью

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#laravel #eloquent #tips

💡 Совет по Laravel: Используйте модели по умолчанию

При работе с отношениями hasOne или belongsTo часто приходится проверять, являются ли они nullable, прежде чем обращаться к их свойствам. В таких случаях можно использовать модели по умолчанию и быть уверенным, что никогда не получим null значения 🚀.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#laravel #tips #sanctum

Laravel Sanctum позволяет легко аутентифицировать пользователей в приложениях с помощью токенов доступа.

Но заметили ли вы, что Sanctum поддерживает атрибут last_used_at в модели PersonalAccessToken?

Sanctum обновляет этот столбец временной меткой каждый раз, когда аутентифицированный пользователь делает новый запрос.

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

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

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#backend #laravel #php

👩‍💻 Оптимизация производительности Laravel с утилитой Benchmark

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

🖥 Читать статью

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#laravel #tips

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

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
#laravel #tips

💡 Совет по Laravel: Фильтр ложных значений

Все использовали метод filter для коллекций. Но знаете ли вы, что если не передать обратный вызов, то он отфильтрует все ложные значения? 🚀

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31👌1
#backend #laravel #php

👩‍💻 Как создавать фасады в Laravel

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

Фасады Laravel — это фантастическая функция фреймворка Laravel, обеспечивающая удобный доступ к сервисам через простой интерфейс. Когда только начинал изучать Laravel, меня смущала одна вещь — метод доступа к фасаду.

🖥 Читать статью

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#laravel #tips

💡Совет по Laravel: Исключение подтвержденного ввода

Иногда может понадобиться исключить входные данные из массива подтвержденных данных. Вместо того, чтобы вручную удалять их, можно использовать правило exclude, которое делает именно это 🚀.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#laravel #pest #tips #testing

Мне нравятся архитектурные пресеты в Pest 3.

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

Например, в этих классах используется md5() для Gravatar или для генерации имен для публичных файлов. Что совершенно нормально с точки зрения безопасности.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1