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

https://www.dev-notes.ru

@snakenf
Download Telegram
Недавно у меня украли мобильный телефон, и я понял, как много приложений не имеют функции контроля сеанса. Я не мог выйти из системы с этого устройства.

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

https://www.dev-notes.ru/articles/laravel/invalidating-sessions-on-other-devices/
Laravel Folio — это новая система автоматической маршрутизации на основе файлов и каталогов. В результате вы получаете каталог "страниц"; при попадании на одну из этих страниц по URL она автоматически загружается. Выпуск Laravel Folio запланирован на следующую неделю, и вот предварительный обзор того, что Тейлор продемонстрировал на Laracon

https://www.dev-notes.ru/articles/laravel/laravel-folio/
Сегодня мы поговорим о том, как управлять слушателями событий, когда у вас есть несколько сценариев, которые слушают одно и то же событие.

Представим, что в вашем приложении есть несколько различных сценариев, которые должны обнаруживать события click. Один скрипт открывает модальные окна. Другой переключает некоторые элементы раскрытия/расширения и сворачивания. Третий сохраняет данные формы.

Когда вы прослушиваете одно и то же событие на нескольких элементах, делегирование событий — отличная стратегия!

https://www.dev-notes.ru/articles/javascript/how-to-more-performantly-listen-for-the-same-event/
Недавно я написал статью о том, как в Laravel можно легко контролировать сессии браузера. Поводом для этой статьи послужил личный неудачный опыт кражи моего мобильного телефона. Чтобы предотвратить доступ и возможность выполнения действий другими людьми, владеющими устройством.

Но мне потребовалось некоторое время, чтобы получить доступ к своим учётным записям с другого устройства и отключить сессии. Размышляя о том, как предотвратить выполнение конфиденциальных действий другими людьми, я вспомнил, что многие используемые мною сервисы время от времени запрашивают пароль для выполнения определённых действий, например:
- Отключение других устройств
- Изменение пароля
- Удаление учётной записи
- Удаление важных ресурсов

https://www.dev-notes.ru/articles/laravel/password-confirmation-for-sensitive-actions-on-laravel/
Совет по PHP.

Только что узнал о полезном методе массива.

У меня есть массив тегов и несколько совпадающих слов.
А мне нужно было получить ключ первого элемента массива.

Угадайте, что: array_key_first()
Если вы новичок в разработке на Laravel, вам может быть интересно, как добавить собственный или сторонний CSS в ваше приложение Laravel. К счастью, добавить CSS в проект Laravel очень просто, и для этого существуют различные методы.

https://www.dev-notes.ru/articles/laravel/four-methods-to-quickly-add-css/
Выход Laravel 11 запланирован только на конец 2023 года, но некоторые новые возможности уже обнародованы, и Тейлор рассказал о некоторых новых крупных улучшениях в своём докладе на Laracon

https://www.dev-notes.ru/articles/laravel/whats-coming-to-Laravel-11/
В этой статье мы рассмотрим некоторые трюки CSS, которые позволят нам создать анимацию наведения для раскрытия наших изображений.

Мы можем подумать: "Ну, это же простая задача! Дополнительный элемент над изображением, который вы анимируете, и готово". Правда, но мы не будем использовать никакой дополнительный элемент или псевдоэлемент. Мы будем работать, используя только элемент <img>. Ничего больше!

https://www.dev-notes.ru/articles/css/css-image-reveal-animation/
Зачем тестировать правила валидации Laravel:

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

https://www.dev-notes.ru/articles/laravel/testing-laravel-validation-rules-with-pest/
Если вас беспокоит вопрос о том, какие SQL-запросы будут выполнены командой "artisan migrate", запустите команду с волшебным флагом --pretend!

Это позволит вам увидеть все SQL-запросы, не выполняя их на самом деле.
Совет #PHP: Используйте функцию PHP array_column() для извлечения одного столбца из многомерного массива. 🗂 Получение значений из определенного столбца без сложных циклов.
Базовый #PHP Совет: Проверить наличие значения в массиве можно с помощью функции PHP in_array(). 🎯 Вы можете определить наличие значения без ручного перебора всего массива.
TypeScript — бесценный инструмент для написания безопасного кода. Он отлавливает ошибки на ранней стадии и предупреждает о проблемах, которые могут вызвать исключения во время выполнения. TypeScript вычисляет тип данных, с которыми вы работаете, и избавляет вас от необходимости писать множество явных аннотаций типов в коде.

Иногда бывают случаи, когда TypeScript неправильно определяет значение, и это часто происходит при фильтрации массива, содержащего данные разных типов. Это может привести к тому, что TypeScript выдаёт предупреждения для валидного кода, что может сбить с толку.

В этом руководстве мы отфильтруем массив, содержащий данные смешанных типов, с помощью метода filter() и убедимся, что TypeScript правильно выводит значения.

https://www.dev-notes.ru/articles/typescript/filtering-typescript-value-types/
Одним из удобных способов информирования пользователей о ваших материалах является создание RSS-канала. Это позволит им подписываться на него с помощью программы чтения RSS. Усилия, затраченные на реализацию этой функции, стоят того, чтобы принять во внимание, поскольку у сайта появится ещё один канал распространения контента.

Компания Spatie известна тем, что создала сотни хороших пакетов для Laravel. Одним из них является laravel-feed. Давайте посмотрим, как он работает.

https://www.dev-notes.ru/articles/laravel/automatically-generate-rss-feeds-in-a-laravel-application/
Бывают случаи, когда действительно необходимо поддерживать определённое соотношение между шириной и высотой отзывчивых элементов на веб-странице. Долгое время это можно было сделать с помощью различных CSS-трюков. Свойство CSS aspect-ratio изменило ситуацию: теперь мы можем задавать соотношение сторон элемента в одной строке кода. Давайте рассмотрим, как использовать свойство aspect-ratio.

https://www.dev-notes.ru/articles/css/css-aspect-ratio/
Защита типа — техника TypeScript, используемая для получения информации о типе переменной, обычно в условном блоке. Защитники типов — обычные функции, возвращающие логическое значение, принимающие тип и сообщающие TypeScript, можно ли его сузить до чего-то более конкретного. Защитники типов обладают уникальным свойством гарантировать, что проверяемое значение имеет заданный тип в зависимости от возвращаемого логического значения.

TypeScript использует некоторые встроенные операторы JavaScript, такие, как typeof, instanceof и оператор in, который используется для определения того, содержит ли объект свойство. Защитники типов позволяют указать компилятору TypeScript вывести определённый тип переменной в определённом контексте, гарантируя, что тип аргумента соответствует тому, что вы говорите.

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

https://www.dev-notes.ru/articles/typescript/how-to-use-type-guards-typescript/
Поисковая функциональность часто оказывается крайне важной в современных веб-приложениях. Если на сайте представлены документы с большим объёмом текста, например, PDF-файлы, то часто возникает необходимость предоставить пользователям возможность перечисления и поиска в содержимом этих документов. Хотя специализированные инструменты, такие как Elasticsearch, MeiliSearch или Typesense, могут показаться привлекательными, важно учитывать их существенное влияние. При включении одного из этих инструментов в свой стек архитектура приложения становится более сложной. Необходимо не только понять, как использовать такой инструмент, но и установить, настроить, поддерживать, обеспечивать безопасность и контролировать его работу.

https://www.dev-notes.ru/articles/laravel/efficient-searching-through-pdfs-with-mysql-and-laravel/
Мониторинг логинов по SSH на Linux-сервере очень важен для обеспечения безопасности системы. Одним из способов информирования об активности входа в систему является настройка оповещений по электронной почте при каждом входе в систему через SSH. В этом руководстве мы покажем Вам, как настроить сервер Linux на отправку уведомлений по электронной почте при входе в систему по протоколу SSH.

https://www.dev-notes.ru/articles/devops/how-to-get-email-alerts-for-ssh-login-on-linux-server/
Массивы являются неотъемлемой частью TypeScript, позволяя разработчикам хранить и манипулировать коллекциями данных. Объект Array поставляется с различными методами, облегчающими работу с массивами. Одним из таких методов является метод flatMap().

В этой статье мы рассмотрим, что такое flatMap() и как он работает. Мы также объясним, как объявить массив в TypeScript, и приведём список других полезных методов работы с массивами, доступных в TypeScript, таких, как concat(), copyWithin(), every(), fill(), filter(), flat(), forEach(), shift(), includes() и reduce(). Давайте приступим!

https://www.dev-notes.ru/articles/typescript/understanding-flatmap-other-typescript-arrays/
Недавно команда Laravel выпустила Laravel Folio — мощный страничный маршрутизатор, предназначенный для упрощения маршрутизации в приложениях Laravel. Следом они выпустили Volt — элегантно выполненный функциональный API для Livewire, позволяющий PHP-логике компонента и шаблонам Blade сосуществовать в одном файле с минимальным количеством шаблонов.

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

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

https://www.dev-notes.ru/articles/laravel/livewire-volt-and-folio/