WebCraft - ремесло веб разработки
6.49K subscribers
1.69K photos
254 videos
2 files
223 links
Интересуешься php , js , css , html , Laravel , Vue ? Этот канал для тебя

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Аргументы Intl.RelativeTimeFormat

Какие аргументы принимает конструктор Intl.RelativeTimeFormat?

Если забыли, то вернитесь к посту от 13.05.2024.

👉 @web_craft | #frontend
Защита чувствительных данных в PHP

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

Как работает sensitive_parameter:
При использовании этого атрибута, PHP скрывает значение параметра в сообщениях об ошибках и логах, заменяя его на ***. Это помогает предотвратить утечки конфиденциальной информации, такой как пароли или токены.

Пример использования:
class UserAuthenticator {
public function authenticate(
#[\SensitiveParameter] string $password
) {
// Логика аутентификации
if ($password !== 'secret') {
throw new \Exception("Authentication failed");
}
}
}

try {
(new UserAuthenticator())->authenticate('wrong_password');
} catch (\Exception $e) {
error_log($e->getMessage());
error_log($e->getTraceAsString());
}


В этом примере, если аутентификация не удастся, в логе вместо фактического значения пароля будет отображено ***.

👉 @web_craft | #php
Асинхронные операции в JavaScript

top-level await позволяет использовать оператор await на верхнем уровне модулей, без необходимости оборачивать его в асинхронную функцию. Это упрощает работу с асинхронным кодом и улучшает читаемость скриптов.

Как работает top-level await:
Ранее для использования await необходимо было объявлять асинхронную функцию:

async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
}
fetchData();


Теперь с top-level await можно писать асинхронный код прямо в модуле:

const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);


👉 @web_craft | #frontend
Слишком точное описание.

👉 @web_craft | #юмор
Создание докер-образов PHP с помощью Wolfi-OS

Статья об улучшении создания Docker-образов для PHP с использованием Wolfi-OS. В ней сравниваются традиционные методы с использованием официального образа Docker для PHP и установкой расширений вручную, с подходом, который использует Wolfi-OS. Это позволяет ускорить процесс сборки, обеспечивает большую безопасность и предлагает сборки с предварительно скомпилированными пакетами. Wolfi-OS предназначен специально для контейнеров, поддерживает создание образов для разных архитектур и имеет улучшенную систему управления пакетами.

👉 @web_craft | #php
Media is too big
VIEW IN TELEGRAM
WebGL Ghost Cursor (2023 update)

Интерактивный курсор с настраиваемым приведением на CSS и JavaScript.

👉 @web_craft | #frontend
Боимся?

🤔 - Нет, я фронтенд.

👍 - Я фулстек, поэтому боюсь всего.

👉 @web_craft | #юмор
This media is not supported in your browser
VIEW IN TELEGRAM
Adjustable Text Emphasis with CSS lh unit

Регулируемый текстовый блок на CSS.

👉 @web_craft | #frontend
Работа с сигналами в PHP

Какая функция позволяет скрипту прерываться и немедленно обрабатывать сигналы в любом месте выполнения?

Если забыли, то вернитесь к посту от 20.05.2024.

👉 @web_craft | #php
Какая функция позволяет скрипту прерываться и немедленно обрабатывать сигналы в любом месте выполнения?
Anonymous Quiz
7%
pcntl_fork;
33%
pcntl_signal;
54%
pcntl_async_signals;
7%
pcntl_wait.
Варианты данных для отправки через navigator.sendBeacon()

Что можно передать в качестве данных в метод navigator.sendBeacon()?

Если забыли, то вернитесь к посту от 21.05.2024.

👉 @web_craft | #frontend
Что можно передать в качестве данных в метод navigator.sendBeacon()?
Anonymous Quiz
14%
Только строки.
30%
Только объекты JSON.
14%
Только Blob.
42%
Строки, Blob, FormData или ReadableStream.
Получение всех переменных в текущей области видимости PHP

Функция get_defined_vars() в PHP возвращает ассоциативный массив всех определенных переменных в текущей области видимости. Ключи массива – это имена переменных, а значения – их содержимое. Функция возвращает как пользовательские переменные, так и суперглобальные массивы (например, $_GET, $_POST, $_SERVER).

Пример использования:
$name = "Alice";
$age = 30;

$all_vars = get_defined_vars();

print_r($all_vars);


Результат:
Array
(
[name] => Alice
[age] => 30
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)


👉 @web_craft | #php
Проверка фокуса на элементе

document.activeElement — это свойство в JavaScript, которое позволяет определить текущий сфокусированный элемент в документе. Его использование позволяет узнать, находится ли определенный элемент в фокусе. Это свойство возвращает элемент, который в данный момент имеет фокус, или null, если ни один элемент не сфокусирован. Важно отметить, что document.activeElement доступно только для чтения, что означает, что нельзя напрямую изменить его значение.

Пример:

let el = document.querySelector('.btn-white');
let isFocus = el === document.activeElement;

console.log(isFocus); // true/false


В этом примере с помощью document.querySelector выбирается элемент с классом .btn-white. Затем, переменная isFocus устанавливается в true, если выбранный элемент el совпадает с текущим сфокусированным элементом document.activeElement, и в false в противном случае. Это позволяет легко определить, сфокусирован ли данный элемент в текущий момент.

👉 @web_craft | #frontend
Создание сервиса для обмена файлами без головной боли.

Статья описывает, как создать сервис для обмена файлами, используя Fly.io и Tigris1. Автор статьи рассказывает о проблемах, связанных с обменом больших файлов между пользователями в разных частях мира, и предлагает решение этой проблемы с помощью глобального хранилища объектов и вычислительных ресурсов, предоставляемых Fly.io и Tigris1.

👉 @web_craft | #frontend
Жизненно?

👍 - Да.

🤔 - Нет.

👉 @web_craft | #юмор
Преобразование запросов и ответов API в Laravel 11

В статье рассматривается проблема различия в соглашениях об именовании в PHP (snake_case) и JavaScript (camelCase). Это может вызвать проблемы при работе с Next.js на фронтенде и Laravel на бэкенде в качестве традиционного REST API2.

Автор предлагает решение этой проблемы с помощью Laravel resources.

👉 @web_craft | #laravel
This media is not supported in your browser
VIEW IN TELEGRAM
CSS LEGO Minifigure Maker

Интерактивный редактор LEGO фигурки на CSS.

👉 @web_craft | #frontend