Заметки разработчика
Відкрити в Telegram
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов. https://www.dev-notes.ru @snakenf
Показати більше463
Підписники
Немає даних24 години
-37 днів
+130 днів
Архів дописів
#laravel #eloquent #tips
Совет по Laravel 💡: Используйте модели по умолчанию
При работе с отношениями
hasOne или belongsTo часто приходится проверять, являются ли они nullable, прежде чем обращаться к их свойствам. В таких случаях можно использовать модели по умолчанию и быть уверенным, что никогда не получим null значения 🚀.
@dev_notes_ru#backend #laravel #php
Валидация (безопасных) URL-адресов
Валидатор Laravel — важный элемент, предотвращающий проникновение в приложения неожиданных и вредоносных данных. Он включает длинный список встроенных правил валидации, предназначенных для большинства распространённых сценариев, с возможностью настройки правил для уточнения необходимой проверки.
Сегодня рассмотрим валидатор
url, проверяющий, содержат ли поля ввода корректные URL-адреса, и позволяющий определить допустимые протоколы для указанных URL-адресов.
📄 Читать статью
@dev_notes_ru#laravel #tips
Совет по Laravel 💡: Получение только удаленных записей
При работе с soft deleted моделями может понадобиться получить только удаленные записи. Хотя можно вручную отфильтровать запрос по столбцу
deleted_at, есть метод onlyTrashed(), который позволяет сделать именно это 🚀.
@dev_notes_ru#laravel #schedule #php #tips
Используя класс
Schedule в Laravel, можно планировать выполнение команд через определенные промежутки времени, например, ежедневно, ежечасно и т. д.
Но иногда перед выполнением команды может потребоваться проверка дополнительных условий на истинность.
Например, выполнять команду Process Order ежечасно, только когда есть отложенные заказы для обработки.
Не волнуйтесь - можно использовать метод when() в цепочке при составлении расписания для выполнения условной проверки.
Метод when() принимает в качестве параметра функцию обратного вызова, и команда будет запланирована, когда функция обратного вызова вернет истинное значение.
@dev_notes_ru#backend #pest #php #laravel #testing
Пресеты архитектурного тестирования в Pest 3
Узнайте, как Pest 3 упрощает архитектурное тестирование с помощью пресетов, позволяя без труда внедрять лучшие практики и поддерживать качество кода в проектах.
Пресеты архитектурного тестирования в Pest 3 — это предварительно настроенные наборы правил, помогающие обеспечить соблюдение лучших практик и структурной целостности кодовой базы. Они похожи на бдительного ревизора кода, встроенного прямо в набор тестов. Но это происходит мгновенно и занимает всего несколько секунд!
Pest 3 поставляется с несколькими пресетами в комплекте:
✅
Laravel
✅ PHP
✅ Relaxed
✅ Security
✅ Strict
Давайте разберёмся, что каждый из этих пресетов предлагает.
📄 Читать статью
@dev_notes_ru#laravel #tips
Совет по Laravel
Можно создавать кастомные диски во время выполнения программы без необходимости держать конфигурацию в файле
config/filesystems.
Это может быть полезным для управления файлами в кастомных путях.
@dev_notes_ru#laravel #database #seeding #seeder
Совет по Laravel 💡: Отключите события модели при засеве базы данных
В большинстве случаев при засеве базы данных не нужно вызывать события модели. Можно использовать трейт
WithoutModelEvents, чтобы отключить эти события, что сделает ваши seeder'ы немного быстрее 🚀.
@dev_notes_ru#backend #pest #php #laravel #testing
Что нового в Pest 3 и как его обновить
Повысьте уровень тестирования PHP с помощью Pest 3. Архитектурные тесты с пресетами, мутации и управление списками задач.
Pest, мой любимый фреймворк для PHP тестирования, только что выпустил третью версию, и мне не терпелось погрузиться в неё и поделиться с вами своими мыслями.
📄 Читать статью
@dev_notes_ru
#laravel #tips #eloquent #SoftDelete
Совет по Laravel 💡: Постоянное удаление soft deleted моделей
Иногда требуется удалить soft deleted модели навсегда. Для этого можно использовать
forceDelete() или новый метод forceDestroy(), появившийся в Laravel v11.21 🚀.
@dev_notes_ru#laravel #eloquent #tips
Приложениям корпоративного уровня часто требуется выполнять объёмную обработку данных. Например, массовый экспорт, создание отчетов, автоматическое выставление счетов и т. д.
Такие приложения часто требуют одновременного получения большого количества записей из базы данных, что при неправильном подходе может привести к проблемам с памятью.
Это происходит потому, что результаты каждого запроса хранятся в памяти PHP до тех пор, пока ссылки на эту переменную не перестанут использоваться.
Чтобы избежать этой проблемы, можно воспользоваться методом
chunk(), предоставляемым Eloquent.
Этот метод накладывает ограничения на запрос, благодаря чему в определенный момент времени в память не загружается слишком много результатов.
@dev_notes_ru#backend #laravel #eloquent #model #tips #php
Советы по Моделям Laravel
Laravel предоставляет огромное количество классных возможностей, помогающих улучшить опыт разработки (DX). Но из-за регулярных релизов, стрессов, связанных с повседневной работой, и огромного количества доступных функций легко упустить некоторые менее известные возможности, которые могут помочь улучшить код.
В статье рассмотрим советы по работе с моделями в Laravel. Надеюсь, эти советы помогут писать более чистый и эффективный код и избежать распространённых подводных камней.
📄 Читать статью
@dev_notes_ru
#laravel #Concurrency #API
Concurrency API. 🚀
Удобное распределение задач между различными процессами PHP для параллельной обработки.
Выйдет на следующей неделе.
@dev_notes_ru
#laravel #defer
Отложенные функции. ⌛️
Отложите функцию для обработки после того, как ответ будет отправлен браузеру. Рабочие очереди не нужны.
Выйдет на следующей неделе.
@dev_notes_ru
#laravel #tips #migration #db
Совет по Laravel💡: Ленивое обновление базы данных
При тестировании кода часто требуется обновить базу данных. В таких случаях можно использовать ленивое обновление базы данных
LazilyRefreshDatabase, чтобы миграции запускались только при обращении к БД. Это поможет ускорить тестирование 🚀.
@dev_notes_ru#laravel #LaravelCloud
Laravel Cloud - это новая полностью управляемая инфраструктурная платформа для Laravel. Перейдите от Hello World к Hello Web за одну минуту или меньше.
@dev_notes_ru
#backend #php #composer
Как создать PHP пакет
Если хотите создать PHP пакет с нуля и поделиться им с другими PHP разработчиками, Composer — это менеджер зависимостей, упрощающий этот процесс! Благодаря Composer PHP имеет одну из лучших экосистем пакетов. Погрузимся в этот процесс и пройдёмся по шагам создания PHP пакета.
📄 Читать статью
@dev_notes_ru
#laravel #tips #substrCount
Совет по Laravel💡: Подсчет вхождений слов
Вам когда-нибудь требовалось подсчитать количество вхождений слова в предложение? В Laravel есть метод
substrCount, который позволяет сделать именно это 🚀.
@dev_notes_ru