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

https://www.dev-notes.ru

@snakenf
Download Telegram
👩‍💻 Новое в Symfony 7.2: Упрощённые однофайловые приложения Symfony

В Symfony 7.2 однофайловые приложения стали проще и требуют меньше настроек.

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

📱 @dev_notes_ru

#Symfony #SingleFile #Application
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
👩‍💻 Недостатки JavaScript

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

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

📱 @dev_notes_ru

#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💡 Совет по Laravel: Предотвращение дублирования запросов

Мы часто загружаем связи вручную, используя метод load. Хотя это и работает, но может привести к дублированию запросов, когда связь уже загружена. Этого можно избежать, используя метод loadMissing 🚀.

📱 @dev_notes_ru

#Laravel #Eloquent #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новое в Symfony 7.2: Новые параметры команд

В Symfony 7.2 появились новые опции команд, позволяющие отслеживать переменные env контейнера, форматировать вывод статистики мессенджера и фильтровать ресурсы во время отладки.

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

📱 @dev_notes_ru

#Symfony #Symfony72
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Обзор наследования в JavaScript

В JavaScript наследование является важным способом повторного использования кода и управления сложными объектными отношениями. Благодаря модели, основанной на прототипах, в JavaScript существует несколько шаблонов наследования, обладающих уникальными преимуществами. Давайте рассмотрим эти техники и поймём, когда какая из них наиболее эффективна.

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

📱 @dev_notes_ru

#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
💡 Совет по Laravel: Новый атрибут `CollectedBy`

Начиная с Laravel v11.28, вместо переопределения метода newCollection, можно использовать новый атрибут CollectedBy, чтобы указать свою коллекцию для модели 🚀.

📱 @dev_notes_ru

#Laravel #Eloquent #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новое в Symfony 7.2: Переработан компонент TypeInfo

В Symfony 7.2 изменён дизайн компонента TypeInfo и улучшена его стабильность.

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

📱 @dev_notes_ru

#Symfony #TypeInfo
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 PHP 8.4: Curl: curl_getinfo - поддержка CURLINFO_POSTTRANSFER_TIME_T

Функция curl_getinfo в расширении Curl возвращает список информации о запросе Curl. Также можно передать параметр в функцию, чтобы получить конкретную информацию о запросе.

Начиная с версии Curl 8.10.0, Curl может возвращать время, прошедшее с момента начала запроса до отправки последнего байта (иначе называемое post time). Это может быть удобным способом измерением длительности в некоторых запросах, таких как загрузка файла в удалённую HTTP-форму, загрузка файла по FTP и т.д.

PHP 8.4 предоставляет эту возможность, если в системе установлена libcurl 8.10.0 или более поздняя версия. Длительность запроса можно получить в виде ключа posttransfer_time_us в возвращаемом значении curl_getinfo или передав новую константу CURLINFO_POSTTRANSFER_TIME_T в функцию curl_getinfo.

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

📱 @dev_notes_ru

#PHP #PHP84 #Curl #features
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Laravel: Проверка, является ли пользователь гостем

Часто бывает необходимо проверить, аутентифицирован ли пользователь, и для этого используется метод check. А вы знали, что если нужно проверить, является ли пользователь гостем, можно использовать метод guest? 🚀

📱 @dev_notes_ru

#Laravel #Auth #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript расист

📱 @dev_notes_ru

#joke #js #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🤣2
👩‍💻 PHP 8.4: Curl: Новая опция CURLOPT_PREREQFUNCTION

Расширение Curl в PHP 8.4 представляет новую опцию CURLOPT_PREREQFUNCTION, позволяющую задать пользовательский callable для принятия решения о продолжении или прерывании запроса. Эта возможность доступна, если расширение собрано с libcurl 7.80.0 или более поздней версии.

Обратный вызов CURLOPT_PREREQFUNCTION вызывается после установления начального соединения и перед отправкой запроса. Например, при запросе HTTPS обратный вызов CURLOPT_PREREQFUNCTION вызывается после установления HTTPS-соединения (DNS + TCP + TLS), перед отправкой фактического HTTP-запроса.

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

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

📱 @dev_notes_ru

#PHP #PHP84 #Curl #features
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 PHP 8.4: Curl: Новая опция CURLOPT_TCP_KEEPCNT

Расширение PHP 8.4 Curl представляет новую опцию Curl с названием CURLOPT_TCP_KEEPCNT, устанавливающую максимальное количество запросов TCP keep-alive.

По умолчанию значение опции равно 9, но с помощью CURLOPT_TCP_KEEPCNT можно увеличить или уменьшить максимальное количество зондов keep-alive.

Опция принимает любое значение int, равное 0 или выше. Попытка установить недопустимое значение приводит к тому, что вызов curl_setopt возвращает false.

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

📱 @dev_notes_ru

#PHP #PHP84 #Curl #features
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Laravel: Агрегатные функции (функции агрегации)

Мы часто используем withCount при работе с отношениями, но вы знали, что другие агрегатные функции доступны из коробки? Например, можно также использовать функции sum, min и max 🚀.

📱 @dev_notes_ru

#Laravel #DB #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 PHP 8.4: Curl: Новая опция CURLOPT_DEBUGFUNCTION

Curl предоставляет опцию CURLOPT_DEBUGFUNCTION для установки пользовательской функции обратного вызова, вызываемой вместо стандартной функции вывода сообщений.

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

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

Расширение PHP 8.4 Curl предоставляет эту опцию libcurl как опцию CURLOPT_DEBUGFUNCTION (для curl_setopt), принимающую значение PHP callable.

Обратный вызов вызывается несколько раз во время запроса Curl, и обратный вызов может решить, что делать с этой информацией.

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

📱 @dev_notes_ru

#PHP #PHP84 #Curl #features
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Laravel: Правило валидации `sometimes`

Вам когда-нибудь требовалось проверить поле только в том случае, если оно присутствует, и пропустить его, когда его нет? Laravel поставляется с правилом валидации `sometimes, позволяющим сделать именно это 🚀.

📱 @dev_notes_ru

#Laravel #Validation #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новое в Symfony 7.2: Улучшения Serializer

В Symfony 7.2 в Serializer добавлена поддержка подклассов DateTime, новый конвертер имён SnakeCaseToCamelCase, обновлённые константы UUID и опциональная интеграция Webhook

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

📱 @dev_notes_ru

#Symfony #Serializer
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
💡 Совет по Laravel: Генерация фейковых данных кредитной карты

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

📱 @dev_notes_ru

#Laravel #FakerPHP #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Новое в Symfony 7.2: Stateless CSRF

Symfony 7.2 представляет значительное усовершенствование функций безопасности: Stateless CSRF (Cross-Site Request Forgery) защита. Новая функция использующая комбинацию куки и HTTP заголовков для проверки непостоянных токенов.

Основное преимущество этой функции перед традиционными методами CSRF заключается в том, что токены проверяются независимо от сессий на стороне сервера. Это делает её подходящей для приложений, использующих HTTP-кэширование. Кроме того, отсутствие зависимости от сеансов гарантирует, что пользователи не потеряют свои данные, если потратят определённое время на отправку формы. Например, если во время заполнения формы сессия пользователя будет уничтожена, функция "Запомнить меня" подключит его заново, и отправка формы будет принята.

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

📱 @dev_notes_ru

#Symfony #CSRF #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻👩‍💻 Различные (и современные) способы переключения контента

Давайте уделим немного времени рассмотрению Dialog API, Popover API и остальных. Рассмотрим, когда лучше использовать каждый из них в зависимости от требований. Модальные или немодальные? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы разберёмся во всём этом.

Легко ориентироваться на то, что знакомо. Когда речь идёт о переключении содержимого, это может быть display: none или opacity: 0 с использованием JavaScript. Но сегодня веб стал более современным, поэтому, возможно, самое время взглянуть на различные способы переключения содержимого с высоты птичьего полёта — какие нативные API поддерживаются сейчас, их плюсы и минусы, а также некоторые вещи, о которых вы могли не знать (например, псевдоэлементы и другие неочевидные вещи).

Итак, давайте потратим некоторое время на рассмотрение раскрытия (<details> и <summary>), Dialog API, Popover API и прочего. Рассмотрим, как правильно использовать каждый из них в зависимости от требований. Модальный или немодальный? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы расскажем обо всём этом.

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

📱 @dev_notes_ru

#Frontend #PopoverAPI #DialogAPI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
💡 Совет по Laravel: Рекурсивная сортировка массивов

Когда-нибудь требовалось рекурсивно отсортировать массив, включая все его вложенные массивы? В Laravel есть метод `sortRecursive, позволяющий сделать именно это 🚀.

📱 @dev_notes_ru

#Laravel #Arr #tips
Please open Telegram to view this post
VIEW IN TELEGRAM