Заметки разработчика
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 #helper #php #backend #webdev

👩‍💻 Упрощение преобразования данных с хелпером transform()

Laravel хелпер transform() — мощный, но недооценённый инструмент, способный очистить код при работе с условными модификациями данных. Эта универсальная функция позволяет преобразовывать данные только при соблюдении определённых условий, что делает её идеальной для обработки пользовательского ввода, форматирования ответов API или предоставления значений по умолчанию. Рассмотрим, как эффективно использовать хелпер transform() в проектах Laravel.

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

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

💡 Совет по Laravel: Автоматические заглавные буквы в переводах

Знаете ли вы, что можно не только параметризировать строки перевода, но и автоматически писать их заглавными буквами? 🚀

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1🔥1
#Laravel #cache #php

👩‍💻 Кэширование запросов к базе данных в Laravel

Кэширование запросов к базе данных — мощная техника оптимизации производительности приложений Laravel. Кэшируя часто используемые данные, можно значительно снизить нагрузку на базу данных и ускорить работу приложения. В статье мы рассмотрим, как использовать Laravel метод Cache::tags() для реализации тонкого контроля над стратегией кэширования.

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

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

💡 Совет по Laravel

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

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1👏1
#git

👩‍💻 Как восстановить удалённую ветку Git

Случайное удаление ветки Git может оказаться кошмаром, особенно если она содержала критические изменения кода. К счастью, Git предоставляет мощные инструменты, позволяющие восстановить удалённые ветки. Мы рассмотрим всё, начиная от понимания анатомии веток Git и заканчивая восстановлением удалённой ветки с помощью простых команд.

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

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

💡 Совет по Laravel: Убедитесь в правильности названия таблицы в миграциях

При создании миграций иногда мы не форматируем имя таким образом, чтобы Laravel мог понять, как заполнить имя таблицы. Однако его всегда можно указать вручную 🚀.

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁2🔥1
#Laravel #interview #php

👩‍💻 12 вопросов для собеседования по Laravel: Работодателю и кандидату

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

Какая последняя версия Laravel?
Что такое Composer?
Какие файлы маршрутов включены в Laravel?

Ответы на такие вопросы не помогают определить, насколько кандидат подходит для работы в реальных проектах.

Поэтому мы решили составить свой собственный список вопросов.

Мы рассмотрим их с двух сторон:

Как интервьюер: что бы я спросил, если бы нанимал Laravel-разработчика?
Как кандидат: к чему мне готовиться?

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

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

💡 Совет по Laravel: Подключение к БД через Artisan

Вам когда-нибудь требовалось быстро подключиться к базе данных через CLI? Для этого есть команда Artisan! 🚀

📱 @dev_notes_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👏1
👩‍💻 React и FormData

Когда изучаете, как получить доступ к данным формы в React, исторически вы должны были узнать об управляемых и неуправляемых полях. Позже можете начать использовать сторонние абстракции, такие как Formik или React Hook Form, использующие управляемые и неуправляемые методы под капотом. В любом случае конечной целью является сбор данных формы. В случае с управляемой формой ваши данные — это ваше состояние. В случае с неуправляемой нужно собирать значения формы самостоятельно, и обычно разработчики выбирают для этого рефы.

Все поля форм в React должны быть либо управляемыми, либо неуправляемыми, потому что вы либо добавляете value в проп, либо нет. FormData, стандарт JavaScript с 2010 года, — это способ доступа к данным формы, независимо от того, управляемая она или неуправляемая, но большинство предпочитает неуправляемую.

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

📱 @dev_notes_ru

#React #FromData #JavaScript #TypeScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
👩‍💻 Упростите проверку существования с Eloquent через методы exists() и doesntExist() Однострочная проверка существования без лишних хлопот

📱 @dev_notes_ru

#laravel #eloquent #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥1🤣1
👩‍💻 Синтаксис Pest vs PHPUnit: Примеры expect()

У фреймворка тестирования Pest много поклонников, в основном из-за элегантного, читабельного «англоязычного» синтаксиса. Я покажу три моих любимых примера синтаксиса expect() и сравню аналогичные вещи в Pest vs PHPUnit.

В целом, эта тема вызывает много мнений, и синтаксис — это личное предпочтение. На Reddit есть пост годичной давности, где люди выступают против синтаксиса Pest. Но мне он нравится. Позвольте продемонстрировать примеры.

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

📱 @dev_notes_ru

#php #testing #pest #phpunit
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
💡 Совет по Laravel: Пропустить задания, когда пакет отменен

При работе с пакетными заданиями лучше всего проверять, не отменен ли пакет перед выполнением задания, и это не обязательно делать вручную, потому что middleware SkipIfBatchCancelled делает именно это 🚀.

📱 @dev_notes_ru

#laravel #middleware #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1🔥1
👩‍💻 Обновления PHP: Блокируйте регрессии с PHPStan

Часто, когда думают о PHPStan, обычно думают об улучшении Type Coverage. На самом деле это лишь малая часть того, на что способен PHPStan. В статье рассмотрим, как использовать его для предотвращения регрессий обновления.

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

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

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

📱 @dev_notes_ru

#php #PHPStan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
💡 Совет по Laravel: Хелпер Pipeline

Часто нужно обработать входные данные в несколько этапов, например, применить фильтры запроса или очистить данные в многоступенчатой цепочке. Если столкнулись с подобной ситуацией, воспользуйтесь хелпером Pipeline 🚀.

📱 @dev_notes_ru

#laravel #pipeline #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
👩‍💻 Из всех функций, выпущенных недавно (после Laracon US), одной из моих любимых стала функция defer().

Функция defer(), как следует из названия, позволяет отложить (проще говоря, перенести) выполнение функции или замыкания после того, как ответ будет отправлен обратно клиенту.

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

Кроме того, функция`defer() проверяет код состояния ответа (`2xx), чтобы убедиться в его успешности перед выполнением замыкания.

📱 @dev_notes_ru

#laravel #defer #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
👩‍💻 Удаление единиц измерения из любых CSS значений

Хотите преобразовать значение длины в значение без единицы измерения?

Из любого значения CSS можно убрать единицу измерения, для получения целого числа!

⚠️ Это экспериментальный хак ⚠️

@property --unitless-val {
syntax: '<integer>';
inherits: true;
initial-value: 0;
}
@property --_u {
syntax: '<length>';
inherits: true;
initial-value: 0;
}
:root {
--val: 25em; /* используем любую единицу измерения длинны (px, em, ex, ch, rem, ...)*/

/* умножаем, затем делим на наибольшее значение, чтобы получить единицу измерения */
--_m: 3.35544e07; /* это значение зависит от браузера */
--_u: calc(var(--val)*var(--_m));
--unit: calc(var(--_u)/var(--_m)); /* = 1em */

--unitless-val: tan(atan2(var(--val),var(--unit))); /* = 25 */
/* В ближайшем будущем можно будет сделать
--unitless-val: calc(var(--val)/var(--unit));
*/
}
/* для Firefox нужно другое значение */
@supports (-moz-appearance: none) {
:root {
--_m: 3.40282e38;
}
}


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

Проверено в 👩‍💻 Firefox, 👩‍💻 Chrome и 👩‍💻 Edge. В Firefox работает только с px, потому что значение преобразуется в px внутри переменной --_u.

👩‍💻 Пример на CodePen

📱 @dev_notes_ru

#css #hack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 git switch и git checkout: В чем разница

Команды git switch и git checkout используются для изменения веток, но у них есть различия в синтаксисе и поведении. Разберёмся в чём разница между ними.

Одна из важнейших особенностей Git — возможность создавать различные ветки и работать в них. Ветки — это как параллельные временные линии проекта, в которых можно работать над различными функциями или экспериментами, не затрагивая стабильный код. Мы перемещаемся между ветками с помощью git switch или git checkout.

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

📱 @dev_notes_ru

#git
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥1
💡 Совет по Laravel

Метод eloquent orderByRaw() позволяет просто передать сырой запрос для упорядочивания результатов.
Например, сортировка по разнице между двумя столбцами.

📱 @dev_notes_ru

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