Поисковая функциональность часто оказывается крайне важной в современных веб-приложениях. Если на сайте представлены документы с большим объёмом текста, например, PDF-файлы, то часто возникает необходимость предоставить пользователям возможность перечисления и поиска в содержимом этих документов. Хотя специализированные инструменты, такие как Elasticsearch, MeiliSearch или Typesense, могут показаться привлекательными, важно учитывать их существенное влияние. При включении одного из этих инструментов в свой стек архитектура приложения становится более сложной. Необходимо не только понять, как использовать такой инструмент, но и установить, настроить, поддерживать, обеспечивать безопасность и контролировать его работу.
https://www.dev-notes.ru/articles/laravel/efficient-searching-through-pdfs-with-mysql-and-laravel/
https://www.dev-notes.ru/articles/laravel/efficient-searching-through-pdfs-with-mysql-and-laravel/
Заметки разработчика
Поиск в PDF-файлах с помощью MySQL и Laravel
Если на сайте представлены документы, например, PDF-файлы, то возникает необходимость предоставить пользователям возможность поиска в содержимом документов.
Мониторинг логинов по SSH на Linux-сервере очень важен для обеспечения безопасности системы. Одним из способов информирования об активности входа в систему является настройка оповещений по электронной почте при каждом входе в систему через SSH. В этом руководстве мы покажем Вам, как настроить сервер Linux на отправку уведомлений по электронной почте при входе в систему по протоколу SSH.
https://www.dev-notes.ru/articles/devops/how-to-get-email-alerts-for-ssh-login-on-linux-server/
https://www.dev-notes.ru/articles/devops/how-to-get-email-alerts-for-ssh-login-on-linux-server/
Заметки разработчика
Как настроить оповещения по электронной почте о входе по SSH на Linux
В этой статье мы покажем Вам, как настроить сервер Linux на отправку уведомлений по электронной почте при входе в систему по протоколу SSH.
Массивы являются неотъемлемой частью TypeScript, позволяя разработчикам хранить и манипулировать коллекциями данных. Объект
В этой статье мы рассмотрим, что такое
https://www.dev-notes.ru/articles/typescript/understanding-flatmap-other-typescript-arrays/
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/
Заметки разработчика
Понимание flatMap() и других массивов TypeScript
В TypeScript объект Array поставляется с различными методами, облегчающими работу с массивами, включая метод flatmap().
Недавно команда Laravel выпустила Laravel Folio — мощный страничный маршрутизатор, предназначенный для упрощения маршрутизации в приложениях Laravel. Следом они выпустили Volt — элегантно выполненный функциональный API для Livewire, позволяющий PHP-логике компонента и шаблонам Blade сосуществовать в одном файле с минимальным количеством шаблонов.
Хотя их можно использовать по отдельности, я считаю, что их совместное применение — это новый, невероятно продуктивный способ создания приложений на Laravel.
В этой статье я расскажу как создать простое приложение, в котором перечисляются эпизоды подкаста Laravel News и пользователи могут их воспроизводить, причём плеер может плавно продолжать воспроизведение при загрузке страницы.
https://www.dev-notes.ru/articles/laravel/livewire-volt-and-folio/
Хотя их можно использовать по отдельности, я считаю, что их совместное применение — это новый, невероятно продуктивный способ создания приложений на Laravel.
В этой статье я расскажу как создать простое приложение, в котором перечисляются эпизоды подкаста Laravel News и пользователи могут их воспроизводить, причём плеер может плавно продолжать воспроизведение при загрузке страницы.
https://www.dev-notes.ru/articles/laravel/livewire-volt-and-folio/
Заметки разработчика
Изучение Livewire 3, Volt и Folio на примере создания плеера подкастов
В этом руководстве мы познакомимся с основами Livewire 3, Volt и Folio и создадим простое приложение, в котором будут отображаться эпизоды подкаста Laravel News
SSH (Secure Shell) — широко распространённый протокол для безопасного удалённого доступа и управления Linux-серверами. По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию может обеспечить дополнительный уровень безопасности сервера, затруднив проведение автоматизированных атак или сканирования.
В этом пошаговом руководстве мы покажем, как изменить порт SSH по умолчанию в системе Linux. Выполнив эти действия, вы повысите безопасность своего сервера и снизите вероятность несанкционированного доступа.
https://www.dev-notes.ru/articles/devops/how-to-change-the-default-ssh-port-in-linux/
В этом пошаговом руководстве мы покажем, как изменить порт SSH по умолчанию в системе Linux. Выполнив эти действия, вы повысите безопасность своего сервера и снизите вероятность несанкционированного доступа.
https://www.dev-notes.ru/articles/devops/how-to-change-the-default-ssh-port-in-linux/
Заметки разработчика
Как изменить порт SSH по умолчанию в Linux
Изменение порта SSH по умолчанию может обеспечить дополнительный уровень безопасности сервера, затруднив проведение автоматизированных атак или сканирования.
Все, что нужно знать о TypeScript, в одной удобной шпаргалке
https://www.dev-notes.ru/articles/typescript/typescript-cheatsheet/
https://www.dev-notes.ru/articles/typescript/typescript-cheatsheet/
Заметки разработчика
Шпаргалка по TypeScript
Все, что вам нужно знать о TypeScript, в одной удобной шпаргалке
В Laravel валидация возвращает ошибку в виде JSON-ответа с сообщениями об ошибке в строгом стандартном формате. Что делать, если вы хотите изменить его на совершенно другую структуру, потому что ваши фронтендеры запрашивают определённые пары ключ-значение?
https://www.dev-notes.ru/articles/laravel/laravel-validation-completely-customize-error-message-format/
https://www.dev-notes.ru/articles/laravel/laravel-validation-completely-customize-error-message-format/
Заметки разработчика
Валидация Laravel: Как настроить формат сообщений об ошибках
В Laravel валидация возвращает ошибку в виде JSON-ответа с сообщениями об ошибке в строгом стандартном формате. Что делать, если вы хотите изменить его
Сетевое взаимодействие — это основа современных технологий, необходимая для подключения устройств и служб. В этой статье вы узнаете о ключевых понятиях, терминологии и протоколах, которые используются в сетевых технологиях.
https://www.dev-notes.ru/articles/devops/networking-101/
https://www.dev-notes.ru/articles/devops/networking-101/
Заметки разработчика
Основы сетевых технологий
В этой статье вы узнаете о ключевых понятиях, терминологии и протоколах, которые используются в сетевых технологиях.
Если вы читаете эту статью, то, скорее всего, вы использовали систему доменных имён (DNS), даже не подозревая об этом. DNS — фундаментальная часть интернета, которая позволяет нам получать доступ к веб-сайтам и онлайн-услугам, используя вместо цифровых адресов удобные для человека имена. Но как именно она работает? В этой статье я расскажу об основах DNS и о том, как она помогает нам ориентироваться в Интернете.
https://www.dev-notes.ru/articles/devops/everything-you-need-to-know-about-dns/
https://www.dev-notes.ru/articles/devops/everything-you-need-to-know-about-dns/
Заметки разработчика
Все, что нужно знать о DNS
В этой статье я расскажу об основах DNS и о том, как она помогает нам ориентироваться в Интернете.
Со свойствами фона CSS можно сделать очень многое. В этой статье мы рассмотрим, как использовать свойство
https://www.dev-notes.ru/articles/css/how-to-use-css-background-size-and-background-position/
background-size для установки размера фонового изображения, а также изучим варианты позиционирования фонового изображения с помощью background-position.https://www.dev-notes.ru/articles/css/how-to-use-css-background-size-and-background-position/
Заметки разработчика
Как использовать CSS background-size и background-position
Узнайте, как задать размер фонового изображения с помощью свойства CSS background-size и как расположить его с помощью background-position.
PHP поддерживает замену значений PHP INI на переменные окружения с помощью синтаксиса строковой интерполяции PHP. Если указанная переменная окружения недоступна, парсер INI использует пустую строку. В PHP 8.3 этот синтаксис расширен для поддержки объявления запасного/fallback значения, если переменная окружения не установлена.
https://www.dev-notes.ru/articles/php/php-83-php-ini-envar-fallback-value-syntax/
https://www.dev-notes.ru/articles/php/php-83-php-ini-envar-fallback-value-syntax/
Заметки разработчика
PHP 8.3: Поддержка запасного/fallback значения для синтаксиса переменных окружения PHP INI
PHP поддерживает замену значений PHP INI на переменные окружения. В PHP 8.3 этот синтаксис расширен для поддержки объявления запасного/fallback значения.
Для разработчика важно иметь твёрдое представление, что такое интернет и как он работает. Это фундамент, на котором строится большинство современных программных приложений. Чтобы создавать эффективные, безопасные и масштабируемые приложения и сервисы, необходимо хорошо понимать, как работает интернет и как использовать его возможности и связи.
В этой статье мы рассмотрим основы интернета, в том числе, что это такое, как он работает, основные понятия, терминологию и общие протоколы, используемые для создания приложений и услуг в интернете.
https://www.dev-notes.ru/articles/devops/how-does-internet-work/
В этой статье мы рассмотрим основы интернета, в том числе, что это такое, как он работает, основные понятия, терминологию и общие протоколы, используемые для создания приложений и услуг в интернете.
https://www.dev-notes.ru/articles/devops/how-does-internet-work/
Заметки разработчика
Как работает Интернет
Чтобы создавать эффективные, безопасные и масштабируемые приложения и сервисы, необходимо понимать, как работает интернет и как использовать его возможности.
В PHP CLI предусмотрена функция линтинга, которая проверяет переданное имя файла на наличие синтаксических ошибок. Это удобно для быстрой проверки PHP-файла или фрагмента перед выполнением.
До версии PHP 8.3 не было возможности проверять несколько PHP-файлов в одном вызове; независимо от количества файлов, PHP CLI проверял только первый файл.
https://www.dev-notes.ru/articles/php/php-83-cli-lint-multiple-files/
До версии PHP 8.3 не было возможности проверять несколько PHP-файлов в одном вызове; независимо от количества файлов, PHP CLI проверял только первый файл.
https://www.dev-notes.ru/articles/php/php-83-cli-lint-multiple-files/
Заметки разработчика
PHP 8.3: PHP CLI Lint (php -l) поддерживает одновременную проверку нескольких файлов
В CLI PHP предусмотрена функция линтинга, проверяющая переданное имя файла на наличие синтаксических ошибок. Это удобно для быстрой проверки.
В этой статье мы рассмотрим несколько способов стилизации полосы прокрутки в CSS, в разных браузерах, чтобы вы могли настроить полосу прокрутки по умолчанию в соответствии с вашим брендом или дизайном.
Полоса прокрутки или скроллбар браузера по умолчанию в большинстве случаев работает хорошо. Однако, если оставить её как есть, даже самые красивые сайты могут выглядеть незавершёнными и неотшлифованными. С помощью стилизации полосы прокрутки можно создать более визуально привлекательный сайт, который будет лучше соответствовать вашему бренду или дизайну. В этом руководстве мы рассмотрим несколько различных способов стилизации полосы прокрутки в CSS.
https://www.dev-notes.ru/articles/css/guide-styling-css-scrollbars/
Полоса прокрутки или скроллбар браузера по умолчанию в большинстве случаев работает хорошо. Однако, если оставить её как есть, даже самые красивые сайты могут выглядеть незавершёнными и неотшлифованными. С помощью стилизации полосы прокрутки можно создать более визуально привлекательный сайт, который будет лучше соответствовать вашему бренду или дизайну. В этом руководстве мы рассмотрим несколько различных способов стилизации полосы прокрутки в CSS.
https://www.dev-notes.ru/articles/css/guide-styling-css-scrollbars/
Заметки разработчика
Руководство по стилизации скроллбара (полосы прокрутки) в CSS
В этой статье мы рассмотрим несколько способов стилизации скроллбара в CSS, в разных браузерах.
PHP-функция
До версии PHP 8.3 попытка присвоить псевдоним встроенному классу PHP приводила к исключению
https://www.dev-notes.ru/articles/php/php-83-class_alias-php-built-in-classes-supported/
class_alias() создаёт псевдоним для заданного класса. Псевдоним ведёт себя точно так же, как и оригинальный класс.До версии PHP 8.3 попытка присвоить псевдоним встроенному классу PHP приводила к исключению
ValueError.https://www.dev-notes.ru/articles/php/php-83-class_alias-php-built-in-classes-supported/
Заметки разработчика
PHP 8.3: class_alias() создание псевдонимов встроенных классов
PHP-функция class_alias() может создавать псевдоним для заданного класса. Псевдоним ведёт себя точно так же, как и оригинальный класс.
Как очистить базу данных удалив ненужные данные с помощью встроенной функции Laravel для повышения производительности запросов.
По понятным причинам таблицы баз данных со временем имеют тенденцию к увеличению размеров. Поэтому для поддержания производительности запросов время от времени требуется их настройка.
Среди распространённых методов — создание индексов, переписывание запросов и даже перепроектирование базы данных.
Но есть и другое очевидное решение, которое также может быть применено, — это очистка данных.
В Laravel для этого есть встроенная функция, которая может быть использована двумя различными способами: Очистка и Массовая очистка.
https://www.dev-notes.ru/articles/eloquent/schedule-periodic-database-clean-up-on-laravel/
По понятным причинам таблицы баз данных со временем имеют тенденцию к увеличению размеров. Поэтому для поддержания производительности запросов время от времени требуется их настройка.
Среди распространённых методов — создание индексов, переписывание запросов и даже перепроектирование базы данных.
Но есть и другое очевидное решение, которое также может быть применено, — это очистка данных.
В Laravel для этого есть встроенная функция, которая может быть использована двумя различными способами: Очистка и Массовая очистка.
https://www.dev-notes.ru/articles/eloquent/schedule-periodic-database-clean-up-on-laravel/
Заметки разработчика
Планирование периодической очистки базы данных на Laravel
Как очистить базу данных удалив ненужные данные с помощью встроенной функции Laravel для повышения производительности запросов
PHP предоставляет функции
Помимо разбора текста, парсер INI поддерживает наследование значений системного окружения и констант PHP, объявленных к моменту разбора текста. Начиная с версии PHP 8.3, он также поддерживает синтаксис запасных (fallback) значений для переменных окружения.
Хотя эти усовершенствования полезны для конфигурирования PHP с помощью переменных окружения и использования доступных PHP-констант, использование встроенного PHP-парсера для анализа INI-значений, предоставленных пользователем, может стать уязвимостью безопасности, поскольку PHP можно обманом заставить раскрыть переменные окружения и PHP-константы, которые, скорее всего, содержат конфиденциальные данные, не подлежащие раскрытию.
https://www.dev-notes.ru/articles/php/php-83-parse_ini_string-file-security-considerations/
parse_ini_string и parse_ini_file, которые повторно используют встроенный в PHP синтаксический анализатор, применяемый для собственных конфигурационных файлов PHP на основе INI.Помимо разбора текста, парсер INI поддерживает наследование значений системного окружения и констант PHP, объявленных к моменту разбора текста. Начиная с версии PHP 8.3, он также поддерживает синтаксис запасных (fallback) значений для переменных окружения.
Хотя эти усовершенствования полезны для конфигурирования PHP с помощью переменных окружения и использования доступных PHP-констант, использование встроенного PHP-парсера для анализа INI-значений, предоставленных пользователем, может стать уязвимостью безопасности, поскольку PHP можно обманом заставить раскрыть переменные окружения и PHP-константы, которые, скорее всего, содержат конфиденциальные данные, не подлежащие раскрытию.
https://www.dev-notes.ru/articles/php/php-83-parse_ini_string-file-security-considerations/
Заметки разработчика
PHP 8.3: Проблемы безопасности парсинга INI-строк и файлов
Вопросы безопасности при разборе пользовательских INI-строк и файлов с помощью функций `parse_ini_string` и `parse_ini_file`.
Исследуем тип
В информатике запись — это структура данных, содержащая набор полей, возможно, разных типов. В TypeScript тип
Другими словами, тип
https://www.dev-notes.ru/articles/typescript/level-up-typescript-record-types/
Record в TypeScript, чтобы лучше понять, как он работает. Также рассмотрим примеры его использования, например, использование с дженериками.В информатике запись — это структура данных, содержащая набор полей, возможно, разных типов. В TypeScript тип
Record просто позволяет нам определять словари, также называемые парами ключ/значение, с фиксированным типом для ключей и фиксированным типом для значений.Другими словами, тип
Record позволяет определить тип словаря, то есть имена и типы его ключей. В этой статье мы рассмотрим тип Record в TypeScript, чтобы лучше понять, что это такое и как он работает. Также рассмотрим, как использовать его для обработки случаев перечисления, как использовать его с дженериками для понимания свойств возвращаемого значения при написании многократно используемого кода.https://www.dev-notes.ru/articles/typescript/level-up-typescript-record-types/
Заметки разработчика
Повышение уровня TypeScript с помощью типов Record
Исследуем тип Record в TypeScript, чтобы лучше понять, как он работает. Также рассмотрим примеры его использования, например, использование с дженериками.
Недавно Тейлор выложил бета-версию Laravel Folio на YouTube в видеоролике с ключевой конференции Laracon. В настоящее время документация состоит только из файла readme, что отражает простоту пакета. Благодаря своей простоте мы можем легко догадаться о его внутреннем устройстве. Я решил углубиться в эту тему, и в этой статье мы отправимся на поиски его внутренних механизмов.
https://www.dev-notes.ru/articles/laravel/folio-deep-dive/
https://www.dev-notes.ru/articles/laravel/folio-deep-dive/
Заметки разработчика
Глубокое погружение в Laravel Folio
Пока документация Folio состоит из файла readme, что отражает простоту пакета. Я решил углубиться и в этой статье мы будем изучать его внутренние механизмы.
Многие веб-сайты и веб-приложения, с которыми вы ежедневно взаимодействуете, предоставляют информацию в режиме реального времени. Например, при использовании приложения для обмена сообщениями сообщения появляются на экране сразу после их отправки, не требуя обновления страницы в браузере.
Как правило, подобная функциональность реального времени реализуется в веб-приложениях с помощью WebSockets.
В этой статье мы рассмотрим, что такое WebSockets, где они могут понадобиться, а также альтернативные подходы к использованию WebSockets. Затем мы расскажем, как реализовать WebSockets в приложениях Laravel с помощью Pusher. Рассмотрим, как настроить бэкенд на отправку широковещательных сообщений через WebSockets, а также как настроить фронтенд на прослушивание этих сообщений. Наконец, рассмотрим использование приватных каналов, каналов присутствия, классов каналов и клиентских событий.
https://www.dev-notes.ru/articles/laravel/a-guide-to-using-websockets-in-laravel/
Как правило, подобная функциональность реального времени реализуется в веб-приложениях с помощью WebSockets.
В этой статье мы рассмотрим, что такое WebSockets, где они могут понадобиться, а также альтернативные подходы к использованию WebSockets. Затем мы расскажем, как реализовать WebSockets в приложениях Laravel с помощью Pusher. Рассмотрим, как настроить бэкенд на отправку широковещательных сообщений через WebSockets, а также как настроить фронтенд на прослушивание этих сообщений. Наконец, рассмотрим использование приватных каналов, каналов присутствия, классов каналов и клиентских событий.
https://www.dev-notes.ru/articles/laravel/a-guide-to-using-websockets-in-laravel/
Заметки разработчика
Руководство по использованию Websockets в Laravel
Узнайте, как можно использовать WebSockets и Pusher для добавления функциональности реального времени в приложения Laravel.