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

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

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Какую функцию JavaScript мы используем для преобразования массива объектов в CSV-строку?
Anonymous Quiz
26%
map()
4%
filter()
45%
join()
25%
reduce()
Please open Telegram to view this post
VIEW IN TELEGRAM
Сравнение строк по звучанию в PHP

Soundex() и metaphone() - это функции PHP, которые используются для сравнения строк по звучанию, а не по орфографии.

Soundex() преобразует строку в 4-символьный код, где первый символ - это первая буква исходной строки, а остальные символы - это цифры, представляющие группы похожих по звучанию согласных. Гласные, пробелы и другие символы игнорируются.

Metaphone() работает похоже, но более точно, чем soundex(). Он учитывает больше правил произношения английского языка.

Пример:
echo soundex("Euler") . " == " . soundex("Ellery") . "n"; // E460
echo soundex("Gauss") . " == " . soundex("Ghosh") . "n"; // G200

echo metaphone("programming") . "n"; // PRKRMNK
echo metaphone("programmer") . "n"; // PRKRMR


👉 @web_craft | #php
Скажите что-то на карьерном

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

Реклама АО «Тинькофф Банк» ИНН 7710140679
Создание отсортированных копий массивов с помощью array.toSorted()

Метод array.toSorted() позволяет создавать отсортированные копии массивов без изменения исходного массива.

Синтаксис: array.toSorted(compareFn)

Параметры:
compareFn (необязательный): Функция, определяющая порядок сортировки. Если не указана, элементы массива преобразуются в строки и сортируются по кодовым точкам Unicode.

Возвращаемое значение: новый массив с элементами, отсортированными по возрастанию.

Пример:
  const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
// Результат: ['Dec', 'Feb', 'Jan', 'Mar']

const values = [1, 10, 21, 2];
const sortedValues = values.toSorted((a, b) => a - b);
// Результат: [1, 2, 10, 21]


👉 @web_craft | #frontend
DTO vs VO в PHP

Статья рассматривает различия между DTO (Data Transfer Object) и VO (Value Object) в контексте PHP.

👉 @web_craft | #php
Сначала ты шутишь над JavaScript, а потом JavaScript шутит над тобой.

👉 @web_craft | #юмор
Практическое руководство по более чистым контроллерам Laravel: использование возможностей средств доступа и мутаторов

Руководство по использованию аксессоров и мутаторов в Laravel для создания более чистых и организованных контроллеров. Автор объясняет, что такое аксессоры и мутаторы, как они работают, и дает примеры их применения в разных ситуациях.

👉 @web_craft | #laravel
Media is too big
VIEW IN TELEGRAM
Blend Mode Overview

Автору этого кодпена был нужен быстрый способ сравнения различных режимов наложения в RGB и CMY, чтобы эффективно работать с переключением цветов без постоянного подбора возможных значений. В итоге получился такой макет на CSS.

Как вам реализация идеи?

👉 @web_craft | #frontend
Освоение маршрутов Laravel: комплексное руководство для всех уровней

Руководство по использованию маршрутизации в Laravel, в котором рассказывается о следующих темах: Основы маршрутизации, расширенная маршрутизация, тестирование маршрутов и практические советы.

👉 @web_craft | #laravel
Назначение аннотации ObservedBy в классе модели Flight

Что делает аннотация ObservedBy в классе модели Flight?

👉 @web_craft | #laravel
Media is too big
VIEW IN TELEGRAM
CSS 3D Cubes

Пример реализации анимированных кубов на CSS.

👉 @web_craft | #frontend
Отличие Promise.allSettled() от Promise.all()

Чем Promise.allSettled() отличается от Promise.all()?

Варианты:
1 вариант. Promise.allSettled() ждет, пока все промисы в iterable будут завершены (выполнены или отклонены)и независимо от их статуса разрешается, а Promise.all() ждет, пока все промисы в iterable будут выполнены.

2 вариант. Promise.allSettled() выполняет промисы в iterable последовательно, а Promise.all() выполняет промисы параллельно.

3 вариант. Promise.allSettled() отклоняется, если хотя бы один промис в iterable отклоняется, а Promise.all() разрешается, даже если один из промисов отклоняется.

4 вариант. Promise.allSettled() возвращает массив промисов, а Promise.all() возвращает единственный промис.

👉 @web_craft | #frontend
Группировка middleware в Laravel

Группировка middleware в Laravel - это способ организации по определенным критериям или целям. Например, вы можете создать группу middleware для аутентификации, авторизации, кэширования, логирования и т.д. Это позволяет упростить регистрацию и назначение middleware для роутов, а также повысить читаемость и поддерживаемость кода.

Для применения группы middleware к роутам вы можете использовать метод middleware() в routes/web.php. В этом методе вы указываете имя группы в качестве параметра.

Например:
Route::middleware('auth')->group(function () {
Route::get('/profile', 'ProfileController@show');
Route::get('/settings', 'SettingsController@show');
});

Route::middleware('admin')->group(function () {
Route::get('/users', 'UserController@index');
Route::get('/roles', 'RoleController@index');
});


👉 @web_craft | #laravel
Проверка корректности UTF-16

Метод String.prototype.isWellFormed в JavaScript используется для проверки, является ли строка UTF-16 корректной.

Как работает:

Возвращает true, если строка корректная.
Возвращает false, если строка содержит непарную суррогатную кодовую единицу.

Пример:
const str = "Привет, мир!";

console.log(str.isWellFormed()); // true

const str2 = "Привет, uD800";

console.log(str2.isWellFormed()); // false


👉 @web_craft | #frontend
Принцип разделения интерфейса (ISP) с использованием PHP: принцип SOLID

Представьте библиотеку: книги по разным темам аккуратно разложены по полкам. Вы же не будете брать с собой все книги, если вам нужна только одна?

То же самое касается и программирования. Принцип разделения интерфейса (ISP) – это наведение порядка в коде. Каждый класс должен "брать" только те методы, которые ему нужны, а не все подряд.

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

👉 @web_craft | #php
Как выполнять команды Laravel Artisan с использованием эндпоинтов

У вас есть приложение Laravel, и вам нужно автоматизировать некоторые задачи. Вы можете использовать команды Artisan, но как их выполнить, если вам нужен доступ к ним извне приложения?

Ответ: через API!

В этой статье мы разберемся, как выполнять команды Artisan через API, узнаем, почему это может быть полезно, а также посмотрим два варианта: Использование пакета laravel-artisan-cli и создание собственного контроллера API.

👉 @web_craft | #laravel